AIRider commited on
Commit
b3ee479
β€’
1 Parent(s): fe178da

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -25
app.py CHANGED
@@ -10,7 +10,7 @@ RAPIDAPI_HOST = "youtube-transcriptor.p.rapidapi.com"
10
 
11
  # 유튜브 URLμ—μ„œ λΉ„λ””μ˜€ IDλ₯Ό μΆ”μΆœν•˜λŠ” ν•¨μˆ˜
12
  def get_video_id(youtube_url):
13
- # 유튜브 URLμ—μ„œ video_id μΆ”μΆœ (일반적인 YouTube URL λ˜λŠ” youtu.be 단좕 URL 지원)
14
  video_id_match = re.search(r"(?<=v=)[^#&?]*", youtube_url) or re.search(r"(?<=youtu.be/)[^#&?]*", youtube_url)
15
  return video_id_match.group(0) if video_id_match else None
16
 
@@ -22,7 +22,6 @@ def get_youtube_transcript(youtube_url):
22
  # λΉ„λ””μ˜€ ID μΆ”μΆœ
23
  video_id = get_video_id(youtube_url)
24
  if video_id is None:
25
- print("ERROR: 잘λͺ»λœ 유튜브 URLμž…λ‹ˆλ‹€. λΉ„λ””μ˜€ IDλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")
26
  return {"error": "잘λͺ»λœ 유튜브 URLμž…λ‹ˆλ‹€. λΉ„λ””μ˜€ IDλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."}
27
 
28
  url = "https://youtube-transcriptor.p.rapidapi.com/transcript"
@@ -35,39 +34,20 @@ def get_youtube_transcript(youtube_url):
35
  # μ–Έμ–΄ μš°μ„ μˆœμœ„μ— 따라 순차적으둜 μš”μ²­μ„ μ‹œλ„
36
  for lang in LANGUAGE_PRIORITY:
37
  querystring = {"video_id": video_id, "lang": lang}
38
- print(f"μš”μ²­ 쀑: {lang} 언어에 λŒ€ν•œ μžλ§‰ μš”μ²­")
39
-
40
  response = requests.get(url, headers=headers, params=querystring)
41
 
42
- # μƒνƒœ μ½”λ“œ 좜λ ₯
43
- print(f"Response status code: {response.status_code}")
44
-
45
- # μ›μ‹œ 응닡 데이터λ₯Ό 좜λ ₯
46
- print("Raw response content:", response.text)
47
-
48
- # μƒνƒœ μ½”λ“œκ°€ 200일 λ•Œλ§Œ 처리
49
  if response.status_code == 200:
50
  try:
51
- # JSON으둜 응닡을 νŒŒμ‹±
52
  data = response.json()
53
-
54
- # 응닡 데이터 좜λ ₯
55
- print("Parsed JSON response:", json.dumps(data, indent=2, ensure_ascii=False))
56
 
57
- # transcription ν•„λ“œλ₯Ό 톡해 μžλ§‰ 데이터가 μ‘΄μž¬ν•˜λŠ”μ§€ 확인
58
- if "transcription" in data and isinstance(data["transcription"], list):
59
- # μžλ§‰ 데이터λ₯Ό JSON 리슀트둜 λ°˜ν™˜
60
- return {"language": lang, "transcription": data["transcription"]}
61
- else:
62
- print(f"ERROR: μžλ§‰ 데이터λ₯Ό {lang} μ–Έμ–΄λ‘œ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")
63
- return {"error": f"{lang} μ–Έμ–΄λ‘œ μžλ§‰ 데이터λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."}
64
 
65
  except json.JSONDecodeError as e:
66
- print(f"ERROR: JSON λ””μ½”λ”© 였λ₯˜ λ°œμƒ: {str(e)}")
67
  return {"error": f"JSON λ””μ½”λ”© 였λ₯˜ λ°œμƒ: {str(e)}"}
68
 
69
- # μžλ§‰μ„ 찾지 λͺ»ν•œ 경우
70
- print("ERROR: μš°μ„ μˆœμœ„ μ–Έμ–΄λ‘œ μžλ§‰μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.")
71
  return {"error": "μš°μ„ μˆœμœ„ μ–Έμ–΄λ‘œ μžλ§‰μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."}
72
 
73
  # Gradio μΈν„°νŽ˜μ΄μŠ€ μ •μ˜
 
10
 
11
  # 유튜브 URLμ—μ„œ λΉ„λ””μ˜€ IDλ₯Ό μΆ”μΆœν•˜λŠ” ν•¨μˆ˜
12
  def get_video_id(youtube_url):
13
+ # 유튜브 URL λ˜λŠ” youtu.be 단좕 URLμ—μ„œ video_id μΆ”μΆœ
14
  video_id_match = re.search(r"(?<=v=)[^#&?]*", youtube_url) or re.search(r"(?<=youtu.be/)[^#&?]*", youtube_url)
15
  return video_id_match.group(0) if video_id_match else None
16
 
 
22
  # λΉ„λ””μ˜€ ID μΆ”μΆœ
23
  video_id = get_video_id(youtube_url)
24
  if video_id is None:
 
25
  return {"error": "잘λͺ»λœ 유튜브 URLμž…λ‹ˆλ‹€. λΉ„λ””μ˜€ IDλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."}
26
 
27
  url = "https://youtube-transcriptor.p.rapidapi.com/transcript"
 
34
  # μ–Έμ–΄ μš°μ„ μˆœμœ„μ— 따라 순차적으둜 μš”μ²­μ„ μ‹œλ„
35
  for lang in LANGUAGE_PRIORITY:
36
  querystring = {"video_id": video_id, "lang": lang}
 
 
37
  response = requests.get(url, headers=headers, params=querystring)
38
 
39
+ # μƒνƒœ μ½”λ“œ 확인 및 전체 응닡 λ°˜ν™˜
 
 
 
 
 
 
40
  if response.status_code == 200:
41
  try:
 
42
  data = response.json()
 
 
 
43
 
44
+ # 전체 응닡 데이터λ₯Ό κ·ΈλŒ€λ‘œ λ°˜ν™˜
45
+ return {"language": lang, "data": data}
 
 
 
 
 
46
 
47
  except json.JSONDecodeError as e:
 
48
  return {"error": f"JSON λ””μ½”λ”© 였λ₯˜ λ°œμƒ: {str(e)}"}
49
 
50
+ # λͺ¨λ“  μ–Έμ–΄μ—μ„œ μžλ§‰μ„ 찾지 λͺ»ν•œ 경우
 
51
  return {"error": "μš°μ„ μˆœμœ„ μ–Έμ–΄λ‘œ μžλ§‰μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."}
52
 
53
  # Gradio μΈν„°νŽ˜μ΄μŠ€ μ •μ˜