Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1115,13 +1115,31 @@ def send_message(recipient_id, message_text):
|
|
| 1115 |
def process_messenger_video(video_url, sender_id):
|
| 1116 |
"""處理來自 Messenger 的影片(HuggingFace 整合版本)"""
|
| 1117 |
import tempfile
|
|
|
|
| 1118 |
|
| 1119 |
try:
|
| 1120 |
print(f"🎬 開始處理 Messenger 影片:{video_url}")
|
| 1121 |
|
| 1122 |
-
# 下載影片
|
| 1123 |
-
|
| 1124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1125 |
|
| 1126 |
# 使用臨時檔案避免權限問題
|
| 1127 |
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
|
|
| 1115 |
def process_messenger_video(video_url, sender_id):
|
| 1116 |
"""處理來自 Messenger 的影片(HuggingFace 整合版本)"""
|
| 1117 |
import tempfile
|
| 1118 |
+
import time
|
| 1119 |
|
| 1120 |
try:
|
| 1121 |
print(f"🎬 開始處理 Messenger 影片:{video_url}")
|
| 1122 |
|
| 1123 |
+
# 下載影片 - 增加重試邏輯
|
| 1124 |
+
max_retries = 3
|
| 1125 |
+
retry_delay = 2 # 初始延遲2秒
|
| 1126 |
+
|
| 1127 |
+
for attempt in range(max_retries):
|
| 1128 |
+
try:
|
| 1129 |
+
print(f"📥 嘗試下載影片 (嘗試 {attempt + 1}/{max_retries})")
|
| 1130 |
+
response = requests.get(video_url, stream=True, timeout=60) # 增加超時時間
|
| 1131 |
+
response.raise_for_status()
|
| 1132 |
+
break # 下載成功,跳出重試循環
|
| 1133 |
+
except requests.exceptions.RequestException as e:
|
| 1134 |
+
print(f"❌ 下載失敗 (嘗試 {attempt + 1}/{max_retries}): {e}")
|
| 1135 |
+
if attempt < max_retries - 1:
|
| 1136 |
+
print(f"⏳ 等待 {retry_delay} 秒後重試...")
|
| 1137 |
+
time.sleep(retry_delay)
|
| 1138 |
+
retry_delay *= 2 # 指數退避
|
| 1139 |
+
else:
|
| 1140 |
+
# 所有重試都失敗
|
| 1141 |
+
send_message(sender_id, "抱歉,下載影片時發生網路錯誤,請稍後再試。")
|
| 1142 |
+
return
|
| 1143 |
|
| 1144 |
# 使用臨時檔案避免權限問題
|
| 1145 |
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|