Update app.py
Browse files
app.py
CHANGED
@@ -44,20 +44,27 @@ def save_comments(comments):
|
|
44 |
json.dump(comments, file)
|
45 |
|
46 |
def download_audio(video_url):
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
return None
|
62 |
|
63 |
def generate_transcript(audio_path):
|
@@ -68,7 +75,7 @@ def generate_transcript(audio_path):
|
|
68 |
result = model.transcribe(audio_path)
|
69 |
return result['text'].strip()
|
70 |
except Exception as e:
|
71 |
-
logging.error(f"
|
72 |
return f"μ μ¬ μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}"
|
73 |
|
74 |
def generate_reply(comment_text, system_prompt):
|
@@ -93,7 +100,7 @@ def get_video_comments(video_id):
|
|
93 |
request = youtube.commentThreads().list(
|
94 |
part='snippet',
|
95 |
videoId=video_id,
|
96 |
-
maxResults=100,
|
97 |
textFormat='plainText'
|
98 |
)
|
99 |
response = request.execute()
|
@@ -113,7 +120,7 @@ def get_video_comments(video_id):
|
|
113 |
part='snippet',
|
114 |
videoId=video_id,
|
115 |
pageToken=response['nextPageToken'],
|
116 |
-
maxResults=100,
|
117 |
textFormat='plainText'
|
118 |
)
|
119 |
response = request.execute()
|
|
|
44 |
json.dump(comments, file)
|
45 |
|
46 |
def download_audio(video_url):
|
47 |
+
try:
|
48 |
+
yt = YouTube(video_url)
|
49 |
+
audio = yt.streams.filter(only_audio=True).first()
|
50 |
+
if audio is None:
|
51 |
+
logging.error('μ€λμ€ μ€νΈλ¦Όμ μ°Ύμ μ μμ΅λλ€.')
|
52 |
+
return None
|
53 |
+
audio_path = audio.download(output_path=".")
|
54 |
+
|
55 |
+
file_stats = os.stat(audio_path)
|
56 |
+
logging.info(f'μ€λμ€ νμΌ ν¬κΈ°(Bytes): {file_stats.st_size}')
|
57 |
+
|
58 |
+
if file_stats.st_size <= 30000000: # νμΌ ν¬κΈ° μ ν νμΈ
|
59 |
+
base, ext = os.path.splitext(audio_path)
|
60 |
+
new_file = base + '.mp3'
|
61 |
+
os.rename(audio_path, new_file)
|
62 |
+
return new_file
|
63 |
+
else:
|
64 |
+
logging.error('νμΌ ν¬κΈ°κ° λ무 ν½λλ€. 1.5μκ° μ΄νμ λΉλμ€λ§ μ§μλ©λλ€.')
|
65 |
+
return None
|
66 |
+
except Exception as e:
|
67 |
+
logging.error(f"μ€λμ€ λ€μ΄λ‘λ μ€ μ€λ₯ λ°μ: {str(e)}")
|
68 |
return None
|
69 |
|
70 |
def generate_transcript(audio_path):
|
|
|
75 |
result = model.transcribe(audio_path)
|
76 |
return result['text'].strip()
|
77 |
except Exception as e:
|
78 |
+
logging.error(f"μ μ¬ μ€ μ€λ₯ λ°μ: {str(e)}")
|
79 |
return f"μ μ¬ μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}"
|
80 |
|
81 |
def generate_reply(comment_text, system_prompt):
|
|
|
100 |
request = youtube.commentThreads().list(
|
101 |
part='snippet',
|
102 |
videoId=video_id,
|
103 |
+
maxResults=100, # λκΈ μ½μ΄λ€μ΄λ μ μ μ
|
104 |
textFormat='plainText'
|
105 |
)
|
106 |
response = request.execute()
|
|
|
120 |
part='snippet',
|
121 |
videoId=video_id,
|
122 |
pageToken=response['nextPageToken'],
|
123 |
+
maxResults=100, # λκΈ μ½μ΄λ€μ΄λ μ μ μ
|
124 |
textFormat='plainText'
|
125 |
)
|
126 |
response = request.execute()
|