Converter YouTube para MP3

Anonymous

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 logo
Code Converter Hugg Expert

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:

python
1import 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.