Commit
•
53e8252
1
Parent(s):
932d851
create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from youtube_transcript_api import YouTubeTranscriptApi as yta
|
3 |
+
from deep_translator import GoogleTranslator
|
4 |
+
|
5 |
+
opts = ['Afrikaans', 'Albanian', 'Amharic', 'Arabic', 'Armenian', 'Azerbaijani', 'Basque', 'Belarusian', 'Bengali', 'Bosnian', 'Bulgarian', 'Catalan', 'Cebuano', 'Chichewa', 'Chinese (Simplified)', 'Chinese (Traditional)', 'Corsican', 'Croatian', 'Czech', 'Danish', 'Dutch', 'English', 'Esperanto', 'Estonian', 'Filipino', 'Finnish', 'French', 'Frisian', 'Galician', 'Georgian', 'German', 'Greek', 'Gujarati', 'Haitian Creole', 'Hausa', 'Hawaiian', 'Hebrew', 'Hindi', 'Hmong', 'Hungarian', 'Icelandic', 'Igbo', 'Indonesian', 'Irish', 'Italian', 'Japanese', 'Javanese', 'Kannada', 'Kazakh', 'Khmer', 'Korean', 'Kurdish (Kurmanji)', 'Kyrgyz', 'Lao', 'Latin', 'Latvian', 'Lithuanian', 'Luxembourgish', 'Macedonian', 'Malagasy', 'Malay', 'Malayalam', 'Maltese', 'Maori', 'Marathi', 'Mongolian', 'Myanmar (Burmese)', 'Nepali', 'Norwegian', 'Odia', 'Pashto', 'Persian', 'Polish', 'Portuguese', 'Punjabi', 'Romanian', 'Russian', 'Samoan', 'Scots Gaelic', 'Serbian', 'Sesotho', 'Shona', 'Sindhi', 'Sinhala', 'Slovak', 'Slovenian', 'Somali', 'Spanish', 'Sundanese', 'Swahili', 'Swedish', 'Tajik', 'Tamil', 'Telugu', 'Thai', 'Turkish', 'Ukrainian', 'Urdu', 'Uyghur', 'Uzbek', 'Vietnamese', 'Welsh', 'Xhosa', 'Yiddish', 'Yoruba', 'Zulu']
|
6 |
+
|
7 |
+
def translate_video_transcript(link, target_language):
|
8 |
+
video_id = link.split("v=")[1]
|
9 |
+
transcript = yta.get_transcript(video_id)
|
10 |
+
original_text = "\n".join([line['text'] for line in transcript])
|
11 |
+
translated_text = GoogleTranslator(source='auto', target=target_language).translate(original_text)
|
12 |
+
return original_text, translated_text
|
13 |
+
|
14 |
+
interface = gr.Interface(fn=translate_video_transcript,
|
15 |
+
inputs=["text", gr.inputs.Textbox(label="Enter YouTube Video Link"),
|
16 |
+
gr.inputs.Dropdown(opts, label="Select Language to Translate To")],
|
17 |
+
outputs=["text", "text"],
|
18 |
+
title="YouTube Video Transcript Translator",
|
19 |
+
description="Translate the transcript of any YouTube video to the language of your choice.")
|
20 |
+
interface.launch()
|