Converter YouTube para MP3
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:
1. Configuração do Espaço
Primeiro, crie um novo espaço no Hugging Face com o template Gradio.
2. Estrutura do Projeto
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.
3. Código do app.py
Aqui está o código para o app.py
:
python1import gradio as gr 2from pytube import YouTube 3import moviepy.editor as mp 4import os 5import shutil 6from threading import Timer 7import time 8 9def download_youtube_video(url, start_time=None, end_time=None): 10 try: 11 yt = YouTube(url) 12 stream = yt.streams.filter(only_audio=True).first() 13 temp_dir = f"temp/{int(time.time())}" 14 os.makedirs(temp_dir, exist_ok=True) 15 temp_file = stream.download(output_path=temp_dir) 16 17 audio_file = os.path.join(temp_dir, yt.title + ".mp3") 18 video_clip = mp.VideoFileClip(temp_file) 19 20 if start_time or end_time: 21 video_clip = video_clip.subclip(start_time, end_time) 22 23 video_clip.audio.write_audiofile(audio_file) 24 video_clip.close() 25 26 Timer(600, delete_temp_folder, [temp_dir]).start() # Schedule the folder deletion in 10 minutes 27 28 return audio_file 29 except Exception as e: 30 return str(e) 31 32def delete_temp_folder(folder_path): 33 shutil.rmtree(folder_path, ignore_errors=True) 34 35def convert_to_mp3(url, start_time=None, end_time=None): 36 audio_file = download_youtube_video(url, start_time, end_time) 37 return audio_file 38 39with gr.Blocks() as demo: 40 with gr.Row(): 41 gr.Markdown("## YouTube to MP3 Converter") 42 43 with gr.Row(): 44 url = gr.Textbox(label="YouTube URL") 45 start_time = gr.Number(label="Start Time (seconds)", optional=True) 46 end_time = gr.Number(label="End Time (seconds)", optional=True) 47 48 with gr.Row(): 49 convert_button = gr.Button("Convert to MP3") 50 51 with gr.Row(): 52 output = gr.Audio(label="Output MP3") 53 54 convert_button.click(convert_to_mp3, inputs=[url, start_time, end_time], outputs=output) 55 56demo.launch()
4. Dependências
Crie o arquivo requirements.txt
com as seguintes dependências:
1gradio 2pytube 3moviepy
5. Gerenciamento de Pastas Temporárias
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
.
6. Deploy no Hugging Face Spaces
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.