Spaces:
Sleeping
Sleeping
| import re | |
| import gradio as gr | |
| from youtube_transcript_api import YouTubeTranscriptApi | |
| def extract_video_id(youtube_url): | |
| # Regex para extrair o ID do vídeo da URL do YouTube | |
| match = re.search(r'(?:youtu\.be\/|(?:www\.)?youtube\.com\/(?:watch\?v=|embed\/|v\/|.+\?v=))([^&]{11})', youtube_url) | |
| return match.group(1) if match else None | |
| def get_transcript(video_id, language="en"): | |
| try: | |
| transcript = YouTubeTranscriptApi.get_transcript(video_id, languages=[language]) | |
| return "\n".join([f"{t['start']}: {t['text']}" for t in transcript]) | |
| except Exception as e: | |
| return f"Erro ao obter transcrição: {str(e)}" | |
| # Função que combina a extração do ID e a obtenção da transcrição | |
| def gradio_interface(youtube_url, language): | |
| video_id = extract_video_id(youtube_url) | |
| if not video_id: | |
| return "Erro: URL inválida. Por favor, insira um link válido do YouTube." | |
| return get_transcript(video_id, language) | |
| # Criação da interface Gradio | |
| iface = gr.Interface( | |
| fn=gradio_interface, | |
| inputs=[ | |
| gr.Textbox(label="URL do Vídeo (YouTube)", placeholder="Ex: https://www.youtube.com/watch?v=tl1jHm0qC_4"), | |
| gr.Dropdown(label="Idioma", choices=["en", "pt", "es", "fr"], value="en") | |
| ], | |
| outputs="text", | |
| title="Obter Transcrição de Vídeos do YouTube", | |
| description="Insira a URL de um vídeo do YouTube e selecione o idioma da transcrição." | |
| ) | |
| # Execução da interface Gradio | |
| iface.launch() | |