AIRider commited on
Commit
315190f
·
verified ·
1 Parent(s): f56a931

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -6
app.py CHANGED
@@ -2,15 +2,27 @@ import os
2
  import requests
3
  import json
4
  import gradio as gr
 
5
 
6
  # Hugging Face 환경 변수로부터 RapidAPI 키와 호스트 가져오기
7
  RAPIDAPI_KEY = os.getenv("RAPIDAPI_KEY")
8
  RAPIDAPI_HOST = "youtube-transcriptor.p.rapidapi.com"
9
 
 
 
 
 
 
 
10
  # 유튜브 자막을 요청하는 함수
11
- def get_youtube_transcript(video_id, lang):
 
 
 
 
 
12
  url = f"https://{RAPIDAPI_HOST}/transcript"
13
- querystring = {"video_id": video_id, "lang": lang}
14
 
15
  headers = {
16
  "x-rapidapi-key": RAPIDAPI_KEY,
@@ -27,9 +39,9 @@ def get_youtube_transcript(video_id, lang):
27
  return {"error": str(e)}
28
 
29
  # Gradio 인터페이스 정의
30
- def youtube_transcript_interface(video_id, lang):
31
  # 자막 데이터 가져오기
32
- transcript_data = get_youtube_transcript(video_id, lang)
33
 
34
  # JSON 포맷으로 출력
35
  return json.dumps(transcript_data, ensure_ascii=False, indent=2)
@@ -39,8 +51,8 @@ interface = gr.Interface(
39
  fn=youtube_transcript_interface,
40
  inputs=["text", "text"],
41
  outputs="text",
42
- title="YouTube Transcript Fetcher",
43
- description="Enter YouTube Video ID and Language Code (e.g., 'ko' for Korean)."
44
  )
45
 
46
  # Gradio 인터페이스 실행
 
2
  import requests
3
  import json
4
  import gradio as gr
5
+ import re
6
 
7
  # Hugging Face 환경 변수로부터 RapidAPI 키와 호스트 가져오기
8
  RAPIDAPI_KEY = os.getenv("RAPIDAPI_KEY")
9
  RAPIDAPI_HOST = "youtube-transcriptor.p.rapidapi.com"
10
 
11
+ # 유튜브 URL에서 비디오 ID를 추출하는 함수
12
+ def get_video_id(youtube_url):
13
+ # 일반적인 YouTube 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
+
17
  # 유튜브 자막을 요청하는 함수
18
+ def get_youtube_transcript(youtube_url, lang_code):
19
+ # 비디오 ID 추출
20
+ video_id = get_video_id(youtube_url)
21
+ if video_id is None:
22
+ return {"error": "잘못된 유튜브 URL입니다. 비디오 ID를 찾을 수 없습니다."}
23
+
24
  url = f"https://{RAPIDAPI_HOST}/transcript"
25
+ querystring = {"video_id": video_id, "lang": lang_code}
26
 
27
  headers = {
28
  "x-rapidapi-key": RAPIDAPI_KEY,
 
39
  return {"error": str(e)}
40
 
41
  # Gradio 인터페이스 정의
42
+ def youtube_transcript_interface(youtube_url, lang_code):
43
  # 자막 데이터 가져오기
44
+ transcript_data = get_youtube_transcript(youtube_url, lang_code)
45
 
46
  # JSON 포맷으로 출력
47
  return json.dumps(transcript_data, ensure_ascii=False, indent=2)
 
51
  fn=youtube_transcript_interface,
52
  inputs=["text", "text"],
53
  outputs="text",
54
+ title="YouTube 자막 추출기",
55
+ description="유튜브 URL과 언어 코드를 입력하세요 (예: 'ko' for Korean)."
56
  )
57
 
58
  # Gradio 인터페이스 실행