Utilisateur
Crie um 'HF gradio' para converter videos do YouTube para mp3. -Adicione 'todas' as opções possíveis. -Os arquivos devem ser deletados da pasta temporária após 10 minutos.
Code Converter Hugg Expert
Crie um 'HF gradio' para converter videos do YouTube para mp3.
-Adicione 'todas' as opções possíveis. -Os arquivos devem ser deletados da pasta temporária após 10 minutos.
Para criar um projeto no Hugging Face Spaces que converte vídeos do YouTube para MP3, podemos utilizar o Gradio como interface. Aqui está um passo a passo detalhado para configurar este projeto:
Primeiro, crie um novo espaço no Hugging Face com o template Gradio.
Sua estrutura de projeto deve conter os seguintes arquivos:
app.py: Arquivo principal que define a interface Gradio e a lógica da aplicação.requirements.txt: Arquivo para listar as dependências do projeto.app.pyAqui está o código para o app.py:
import gradio as gr
from pytube import YouTube
import moviepy.editor as mp
import os
import shutil
from threading import Timer
import time
def download_youtube_video(url, start_time=None, end_time=None):
try:
yt = YouTube(url)
stream = yt.streams.filter(only_audio=True).first()
temp_dir = f"temp/{int(time.time())}"
os.makedirs(temp_dir, exist_ok=True)
temp_file = stream.download(output_path=temp_dir)
audio_file = os.path.join(temp_dir, yt.title + ".mp3")
video_clip = mp.VideoFileClip(temp_file)
if start_time or end_time:
video_clip = video_clip.subclip(start_time, end_time)
video_clip.audio.write_audiofile(audio_file)
video_clip.close()
Timer(600, delete_temp_folder, [temp_dir]).start() # Schedule the folder deletion in 10 minutes
return audio_file
except Exception as e:
return str(e)
def delete_temp_folder(folder_path):
shutil.rmtree(folder_path, ignore_errors=True)
def convert_to_mp3(url, start_time=None, end_time=None):
audio_file = download_youtube_video(url, start_time, end_time)
return audio_file
with gr.Blocks() as demo:
with gr.Row():
gr.Markdown("## YouTube to MP3 Converter")
with gr.Row():
url = gr.Textbox(label="YouTube URL")
start_time = gr.Number(label="Start Time (seconds)", optional=True)
end_time = gr.Number(label="End Time (seconds)", optional=True)
with gr.Row():
convert_button = gr.Button("Convert to MP3")
with gr.Row():
output = gr.Audio(label="Output MP3")
convert_button.click(convert_to_mp3, inputs=[url, start_time, end_time], outputs=output)
demo.launch()
Crie o arquivo requirements.txt com as seguintes dependências:
gradio
pytube
moviepy
O código acima inclui uma função delete_temp_folder que é agendada para rodar 10 minutos após a criação da pasta temporária, usando Timer do módulo threading.
Suba esses arquivos no repositório do seu espaço no Hugging Face. Assim que o deploy estiver completo, você terá uma aplicação funcional que converte vídeos do YouTube para MP3 e automaticamente deleta os arquivos temporários após 10 minutos.
Pronto! Sua aplicação estará disponível no Hugging Face Spaces com todas as funcionalidades necessárias.