abidlabs's picture
abidlabs HF staff
Update app.py
12d766c verified
raw
history blame contribute delete
984 Bytes
from pytubefix import YouTube
import ffmpeg
from gradio_client import Client, handle_file
import subprocess
import gradio as gr
client = Client("abidlabs/music-separation")
placeholder_url = "https://www.youtube.com/watch?v=bfATETsvqt4&ab_channel=MiniMuslims"
placeholder_file = "example_acapella_video.mp4"
def acapellify(video_path):
subprocess.run(['ffmpeg', '-i', video_path, '-vn', '-c:a', 'copy', 'audio.m4a', '-y'])
result = client.predict(
handle_file('audio.m4a'),
api_name="/predict"
)
subprocess.call(['ffmpeg', '-y', '-i', video_path, '-i', result[0], '-map', '0:v', '-map', '1:a', '-c:v', 'copy', '-c:a', 'aac', '-strict', 'experimental', 'acapella_video.mp4'])
return "acapella_video.mp4"
io = gr.Interface(acapellify, gr.Video(label="Original video"), gr.Video(label="Acapella output"))
with gr.Blocks() as demo:
gr.Markdown("# Acapellify: Get a Vocals-only from any Video in 1 Click")
io.render()
demo.launch()