tregu0458 commited on
Commit
22e8001
·
verified ·
1 Parent(s): 92661c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -0
app.py CHANGED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from langchain.document_loaders import YoutubeLoader
3
+
4
+ def process_youtube_url(url, language):
5
+ try:
6
+ loader = YoutubeLoader.from_youtube_url(
7
+ youtube_url=url,
8
+ add_video_info=True,
9
+ language=[language],
10
+ )
11
+ docs = loader.load()
12
+ return str(docs), [], ""
13
+ except Exception as e:
14
+ error_msg = str(e)
15
+ available_languages = extract_available_languages(error_msg)
16
+ recommended_language = extract_recommended_language(error_msg)
17
+ return f"Error: {error_msg}", available_languages, recommended_language
18
+
19
+ def extract_available_languages(error_msg):
20
+ languages = []
21
+ generated_section = False
22
+ for line in error_msg.split("\n"):
23
+ if line.startswith("(GENERATED)"):
24
+ generated_section = True
25
+ elif generated_section and line.startswith(" - "):
26
+ lang_code, lang_name = line[3:].split(" (", 1)
27
+ languages.append(f"{lang_name[:-1]} ({lang_code})")
28
+ return languages
29
+
30
+ def extract_recommended_language(error_msg):
31
+ generated_section = False
32
+ for line in error_msg.split("\n"):
33
+ if line.startswith("(GENERATED)"):
34
+ generated_section = True
35
+ elif generated_section and line.startswith(" - ") and "[TRANSLATABLE]" in line:
36
+ lang_code, lang_name = line[3:].split(" (", 1)
37
+ return f"{lang_name[:-1]} ({lang_code})"
38
+ return ""
39
+
40
+ iface = gr.Interface(
41
+ fn=process_youtube_url,
42
+ inputs=[
43
+ gr.Textbox(label="YouTube URL", placeholder="https://youtu.be/example"),
44
+ gr.Dropdown(label="Language", choices=["en", "ja", "fr","de","it"]),
45
+ ],
46
+ outputs=[
47
+ gr.Textbox(label="Loaded Documents / Error Message",show_copy_button=True),
48
+ gr.Dropdown(label="Available Languages"),
49
+ gr.Textbox(label="Recommended Language")
50
+ ],
51
+ title="YouTube Transcript Loader",
52
+ description="Enter a YouTube URL and select the language to load the transcript using LangChain's YoutubeLoader.",
53
+ )
54
+
55
+ if __name__ == "__main__":
56
+ iface.launch()