adamchanadam commited on
Commit
dbb6bf9
·
verified ·
1 Parent(s): 5b80b81

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -7
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['title'],
353
- 'duration': str(datetime.timedelta(seconds=video_info['duration'])),
354
- 'view_count': video_info['view_count'],
355
  'like_count': video_info.get('like_count', 'N/A'),
356
- 'description': video_info['description']
357
  }
358
  send_sse_message(q, {"status": "獲取到視頻信息", "video_info": video_data})
359
 
360
  # 處理 YouTube 描述
361
- raw_description = video_info['description']
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
- if "Sign in to confirm you're not a bot" in str(e):
 
368
  send_sse_message(q, {"status": "錯誤:YouTube 要求人機驗證。請稍後再試或使用其他視頻。"})
369
  else:
370
- send_sse_message(q, {"status": f"下載音頻時發生錯誤: {str(e)}"})
 
 
 
 
 
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("檢測到本地文件路徑,開始處理本地視頻")