Update app.py
Browse files
app.py
CHANGED
@@ -348,26 +348,35 @@ def process_video(url_or_path, q, local_video_description=''):
|
|
348 |
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
349 |
video_info = ydl.extract_info(url_or_path, download=False)
|
350 |
|
|
|
|
|
|
|
351 |
video_data = {
|
352 |
-
'title': video_info
|
353 |
-
'duration': str(datetime.timedelta(seconds=video_info
|
354 |
-
'view_count': video_info
|
355 |
'like_count': video_info.get('like_count', 'N/A'),
|
356 |
-
'description': video_info
|
357 |
}
|
358 |
send_sse_message(q, {"status": "獲取到視頻信息", "video_info": video_data})
|
359 |
|
360 |
# 處理 YouTube 描述
|
361 |
-
raw_description = video_info
|
362 |
processed_description = process_youtube_description(raw_description)
|
363 |
|
364 |
logger.info("開始下載 YouTube 音頻")
|
365 |
audio_path, video_title = download_audio(url_or_path, save_directory, q)
|
366 |
except yt_dlp.utils.DownloadError as e:
|
367 |
-
|
|
|
368 |
send_sse_message(q, {"status": "錯誤:YouTube 要求人機驗證。請稍後再試或使用其他視頻。"})
|
369 |
else:
|
370 |
-
send_sse_message(q, {"status": f"下載音頻時發生錯誤: {
|
|
|
|
|
|
|
|
|
|
|
371 |
raise
|
372 |
else:
|
373 |
logger.info("檢測到本地文件路徑,開始處理本地視頻")
|
|
|
348 |
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
349 |
video_info = ydl.extract_info(url_or_path, download=False)
|
350 |
|
351 |
+
if video_info is None:
|
352 |
+
raise ValueError("無法獲取視頻信息")
|
353 |
+
|
354 |
video_data = {
|
355 |
+
'title': video_info.get('title', 'Unknown Title'),
|
356 |
+
'duration': str(datetime.timedelta(seconds=video_info.get('duration', 0))),
|
357 |
+
'view_count': video_info.get('view_count', 'N/A'),
|
358 |
'like_count': video_info.get('like_count', 'N/A'),
|
359 |
+
'description': video_info.get('description', 'No description available')
|
360 |
}
|
361 |
send_sse_message(q, {"status": "獲取到視頻信息", "video_info": video_data})
|
362 |
|
363 |
# 處理 YouTube 描述
|
364 |
+
raw_description = video_info.get('description', '')
|
365 |
processed_description = process_youtube_description(raw_description)
|
366 |
|
367 |
logger.info("開始下載 YouTube 音頻")
|
368 |
audio_path, video_title = download_audio(url_or_path, save_directory, q)
|
369 |
except yt_dlp.utils.DownloadError as e:
|
370 |
+
error_message = str(e)
|
371 |
+
if "Sign in to confirm you're not a bot" in error_message:
|
372 |
send_sse_message(q, {"status": "錯誤:YouTube 要求人機驗證。請稍後再試或使用其他視頻。"})
|
373 |
else:
|
374 |
+
send_sse_message(q, {"status": f"下載音頻時發生錯誤: {error_message}"})
|
375 |
+
logger.error(f"YouTube 下載錯誤: {error_message}")
|
376 |
+
raise
|
377 |
+
except ValueError as e:
|
378 |
+
send_sse_message(q, {"status": f"錯誤:{str(e)}"})
|
379 |
+
logger.error(f"值錯誤: {str(e)}")
|
380 |
raise
|
381 |
else:
|
382 |
logger.info("檢測到本地文件路徑,開始處理本地視頻")
|