Kims12 commited on
Commit
eaf050c
ยท
verified ยท
1 Parent(s): 4de2473

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -5
app.py CHANGED
@@ -63,13 +63,18 @@ def get_youtube_transcript(youtube_url):
63
  return {"error": "์ž๋ง‰์„ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค."}
64
 
65
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ํ•จ์ˆ˜
66
- def youtube_transcript_interface(youtube_url):
67
- transcript_data = get_youtube_transcript(youtube_url)
 
68
 
69
  if "error" in transcript_data:
70
  return transcript_data["error"]
71
 
72
- data = transcript_data.get("data", {})
 
 
 
 
73
  title = data.get("title", "์ œ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
74
  transcription = data.get("transcriptionAsText", "์ž๋ง‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
75
 
@@ -77,13 +82,31 @@ def youtube_transcript_interface(youtube_url):
77
  formatted_output = f"์ œ๋ชฉ: {title}\n\n{transcription}"
78
  return formatted_output
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ
81
  interface = gr.Interface(
82
  fn=youtube_transcript_interface,
83
- inputs=gr.Textbox(lines=2, placeholder="์œ ํŠœ๋ธŒ URL์„ ์ž…๋ ฅํ•˜์„ธ์š”."),
 
 
 
84
  outputs=gr.Textbox(),
85
  title="YouTube ์ž๋ง‰ ์ถ”์ถœ๊ธฐ",
86
- description="์œ ํŠœ๋ธŒ URL์„ ์ž…๋ ฅํ•˜๋ฉด ์ œ๋ชฉ๊ณผ ์ž๋ง‰ ํ…์ŠคํŠธ๋งŒ ์ถ”์ถœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค."
87
  )
88
 
89
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰
 
63
  return {"error": "์ž๋ง‰์„ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค."}
64
 
65
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ํ•จ์ˆ˜
66
+ def youtube_transcript_interface(youtube_url, language_name):
67
+ selected_lang = map_language_name_to_code(language_name)
68
+ transcript_data = get_youtube_transcript(youtube_url, selected_lang)
69
 
70
  if "error" in transcript_data:
71
  return transcript_data["error"]
72
 
73
+ data_list = transcript_data.get("data", [])
74
+ if not data_list:
75
+ return "์ž๋ง‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."
76
+
77
+ data = data_list[0] # ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ ‘๊ทผ
78
  title = data.get("title", "์ œ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
79
  transcription = data.get("transcriptionAsText", "์ž๋ง‰์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
80
 
 
82
  formatted_output = f"์ œ๋ชฉ: {title}\n\n{transcription}"
83
  return formatted_output
84
 
85
+ # ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด ๋ชฉ๋ก (์˜ˆ์‹œ)
86
+ available_languages = [
87
+ ("ํ•œ๊ตญ์–ด", "ko"),
88
+ ("์˜์–ด", "en"),
89
+ ("์ผ๋ณธ์–ด", "ja"),
90
+ ("์ค‘๊ตญ์–ด", "zh")
91
+ ]
92
+
93
+ # ์–ธ์–ด ์„ ํƒ ์‹œ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ธ์–ด ์ฝ”๋“œ๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
94
+ def map_language_name_to_code(language_name):
95
+ for name, code in available_languages:
96
+ if name == language_name:
97
+ return code
98
+ return 'ko' # ๊ธฐ๋ณธ๊ฐ’
99
+
100
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ
101
  interface = gr.Interface(
102
  fn=youtube_transcript_interface,
103
+ inputs=[
104
+ gr.Textbox(lines=2, placeholder="์œ ํŠœ๋ธŒ URL์„ ์ž…๋ ฅํ•˜์„ธ์š”."),
105
+ gr.Dropdown(choices=[lang[0] for lang in available_languages], label="์ž๋ง‰ ์–ธ์–ด", value="ํ•œ๊ตญ์–ด")
106
+ ],
107
  outputs=gr.Textbox(),
108
  title="YouTube ์ž๋ง‰ ์ถ”์ถœ๊ธฐ",
109
+ description="์œ ํŠœ๋ธŒ URL์„ ์ž…๋ ฅํ•˜๊ณ  ์›ํ•˜๋Š” ์ž๋ง‰ ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๋ฉด ์ œ๋ชฉ๊ณผ ์ž๋ง‰ ํ…์ŠคํŠธ๋งŒ ์ถ”์ถœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค."
110
  )
111
 
112
  # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰