Code Converter Hugg Expert

Converter YouTube para MP3

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.

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 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() ``` ### 4. Dependências Crie o arquivo `requirements.txt` com as seguintes dependências: ``` gradio pytube moviepy ``` ### 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.