arxivgpt kim commited on
Commit
8062da3
ยท
verified ยท
1 Parent(s): 8a2a210

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -12
app.py CHANGED
@@ -1,6 +1,10 @@
1
  import gradio as gr
2
  import requests
3
  import time
 
 
 
 
4
 
5
  def convert_google_drive_link(share_link):
6
  file_id = share_link.split('/')[-2]
@@ -10,7 +14,6 @@ def create_video(video_share_link, audio_share_link):
10
  video_download_link = convert_google_drive_link(video_share_link)
11
  audio_download_link = convert_google_drive_link(audio_share_link)
12
 
13
- # API ์š”์ฒญ ํŽ˜์ด๋กœ๋“œ ์„ค์ •
14
  payload = {
15
  "audioUrl": audio_download_link,
16
  "videoUrl": video_download_link,
@@ -21,16 +24,15 @@ def create_video(video_share_link, audio_share_link):
21
  }
22
 
23
  headers = {
24
- "Authorization": f"Bearer {api_key}" # Hugging Face Secrets์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌ
25
  }
26
 
27
  # API ํ˜ธ์ถœ ๋ฐ ์‘๋‹ต ์ฒ˜๋ฆฌ
28
- response = requests.post(api_url, json=payload, headers=headers)
29
  if response.status_code == 200:
30
  job_id = response.json()["id"]
31
- status_url = f"{api_url}/{job_id}" # ์ƒํƒœ ํ™•์ธ URL
32
 
33
- # ์ƒํƒœ ์ฒดํฌ ๋ฃจํ”„
34
  while True:
35
  status_response = requests.get(status_url, headers=headers)
36
  if status_response.status_code == 200:
@@ -39,22 +41,17 @@ def create_video(video_share_link, audio_share_link):
39
  return status_response.json()["url"]
40
  elif status == "FAILED":
41
  return "๋น„๋””์˜ค ์ƒ์„ฑ ์‹คํŒจ."
42
- time.sleep(10) # 10์ดˆ ๋Œ€๊ธฐ
43
  else:
44
  return "์ƒํƒœ ํ™•์ธ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ."
45
  else:
46
  return "API ํ˜ธ์ถœ ์‹คํŒจ."
47
 
48
- # Gradio ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜
49
  iface = gr.Interface(
50
  fn=create_video,
51
- inputs=[
52
- gr.Textbox(label="๋น„๋””์˜ค ํŒŒ์ผ์˜ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ  ๋งํฌ"),
53
- gr.Textbox(label="์˜ค๋””์˜ค ํŒŒ์ผ์˜ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ  ๋งํฌ")
54
- ],
55
  outputs=gr.Textbox(label="์ƒ์„ฑ๋œ ๋น„๋””์˜ค ๋‹ค์šด๋กœ๋“œ ๋งํฌ"),
56
  description="๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ ๋œ mp4 ํŒŒ์ผ๊ณผ ์˜ค๋””์˜ค ํŒŒ์ผ์„ ํ•ฉ์„ฑํ•˜์—ฌ ๋น„๋””์˜ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค."
57
  )
58
 
59
- # Hugging Face Space์— ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰
60
  iface.launch()
 
1
  import gradio as gr
2
  import requests
3
  import time
4
+ import os # ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€
5
+
6
+ # ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ API ํ‚ค๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
7
+ api_key = os.getenv("API_KEY")
8
 
9
  def convert_google_drive_link(share_link):
10
  file_id = share_link.split('/')[-2]
 
14
  video_download_link = convert_google_drive_link(video_share_link)
15
  audio_download_link = convert_google_drive_link(audio_share_link)
16
 
 
17
  payload = {
18
  "audioUrl": audio_download_link,
19
  "videoUrl": video_download_link,
 
24
  }
25
 
26
  headers = {
27
+ "Authorization": f"Bearer {api_key}"
28
  }
29
 
30
  # API ํ˜ธ์ถœ ๋ฐ ์‘๋‹ต ์ฒ˜๋ฆฌ
31
+ response = requests.post(api_url, json=payload, headers=headers) # api_url์„ ์‹ค์ œ API ์—”๋“œํฌ์ธํŠธ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
32
  if response.status_code == 200:
33
  job_id = response.json()["id"]
34
+ status_url = f"{api_url}/{job_id}"
35
 
 
36
  while True:
37
  status_response = requests.get(status_url, headers=headers)
38
  if status_response.status_code == 200:
 
41
  return status_response.json()["url"]
42
  elif status == "FAILED":
43
  return "๋น„๋””์˜ค ์ƒ์„ฑ ์‹คํŒจ."
44
+ time.sleep(10)
45
  else:
46
  return "์ƒํƒœ ํ™•์ธ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ."
47
  else:
48
  return "API ํ˜ธ์ถœ ์‹คํŒจ."
49
 
 
50
  iface = gr.Interface(
51
  fn=create_video,
52
+ inputs=[gr.Textbox(label="๋น„๋””์˜ค ํŒŒ์ผ์˜ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ  ๋งํฌ"), gr.Textbox(label="์˜ค๋””์˜ค ํŒŒ์ผ์˜ ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ  ๋งํฌ")],
 
 
 
53
  outputs=gr.Textbox(label="์ƒ์„ฑ๋œ ๋น„๋””์˜ค ๋‹ค์šด๋กœ๋“œ ๋งํฌ"),
54
  description="๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ ๊ณต์œ ๋œ mp4 ํŒŒ์ผ๊ณผ ์˜ค๋””์˜ค ํŒŒ์ผ์„ ํ•ฉ์„ฑํ•˜์—ฌ ๋น„๋””์˜ค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค."
55
  )
56
 
 
57
  iface.launch()