datasciencedojo's picture
added css
ef2021d
raw
history blame
3.01 kB
from youtube_transcript_api import YouTubeTranscriptApi as yta
import gradio as gr
from deep_translator import GoogleTranslator
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', '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']
def transcript_generator(link,option):
yt_link = str(link)
yt_id = yt_link.partition("=")[2]
data = yta.get_transcript(yt_id)
transcript = ''
for value in data:
for key,val in value.items():
if key == 'text':
transcript += val
translation = GoogleTranslator(source='auto', target=option).translate(transcript)
return transcript,translation
css = """
footer {display:none !important}
.output-markdown{display:none !important}
footer {visibility: hidden}
#component-4 textarea[data-testid="textbox"] { height: 178px !important}
.max-h-[30rem] {max-height: 18rem !important;}
.hover\:bg-orange-50:hover {
--tw-bg-opacity: 1 !important;
background-color: rgb(229,225,255) !important;
}
"""
with gr.Blocks(title="Wikipedia Article Scrape | Data Science Dojo", css = css) as demo:
input1 = gr.Textbox(label="Enter YouTube Link",value='',lines=1)
input2 = gr.Dropdown(opts)
with gr.Tab("Transcript"):
output1 = gr.Textbox(label="Transcript",lines=10)
with gr.Tab("Translated Transcript"):
output2 = gr.Textbox(label="Translation",lines=10)
btn = gr.Button(value="Submit")
btn.click(transcript_generator, inputs=[input1,input2], outputs=[output1,output2])
gr.Examples(
[["https://www.youtube.com/watch?v=47dtFZ8CFo8",'chinese (simplified)'], ["https://www.youtube.com/watch?v=hT_nvWreIhg",'french'],['https://www.youtube.com/watch?v=PMs76lrqiA4','urdu']],
fn = transcript_generator,
inputs = [input1,input2],
outputs = [output1,output2],
cache_examples = True,
)
if __name__ == "__main__":
demo.launch()