zhoujiaangyao commited on
Commit ·
5dbd5b2
1
Parent(s): 7ac14f4
feat: LocalDownloader 适配上传的音频/视频(容错封面 + 透传 video_path)
Browse files
backend/app/downloaders/local_downloader.py
CHANGED
|
@@ -119,19 +119,29 @@ class LocalDownloader(Downloader, ABC):
|
|
| 119 |
title, _ = os.path.splitext(file_name)
|
| 120 |
print(title, file_name,video_url)
|
| 121 |
file_path=self.convert_to_mp3(video_url)
|
| 122 |
-
|
| 123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
|
| 125 |
print('file——path',file_path)
|
| 126 |
return AudioDownloadResult(
|
| 127 |
file_path=file_path,
|
| 128 |
title=title,
|
| 129 |
duration=0, # 可选:后续加上读取时长
|
| 130 |
-
cover_url=cover_url,
|
| 131 |
platform="local",
|
| 132 |
video_id=title,
|
| 133 |
raw_info={
|
| 134 |
'path': file_path
|
| 135 |
},
|
| 136 |
-
video_path=
|
| 137 |
)
|
|
|
|
| 119 |
title, _ = os.path.splitext(file_name)
|
| 120 |
print(title, file_name,video_url)
|
| 121 |
file_path=self.convert_to_mp3(video_url)
|
| 122 |
+
# 纯音频文件没有视频流,extract_cover 会失败:容错跳过封面,别让整条任务崩。
|
| 123 |
+
# (下载 worker 在不需要截图时只上传音频 mp3,会走到这里。)
|
| 124 |
+
cover_url = ""
|
| 125 |
+
try:
|
| 126 |
+
cover_path = self.extract_cover(video_url)
|
| 127 |
+
cover_url = save_cover_to_static(cover_path)
|
| 128 |
+
except Exception as e:
|
| 129 |
+
print(f"提取封面失败(可能是纯音频文件),跳过封面: {e}")
|
| 130 |
+
|
| 131 |
+
# need_video=True(要截图)时,把上传的视频原文件作为 video_path 传下去,
|
| 132 |
+
# 让后续截图环节能从这个本地视频取帧;纯音频则为 None。
|
| 133 |
+
video_path = video_url if need_video and os.path.exists(video_url) else None
|
| 134 |
|
| 135 |
print('file——path',file_path)
|
| 136 |
return AudioDownloadResult(
|
| 137 |
file_path=file_path,
|
| 138 |
title=title,
|
| 139 |
duration=0, # 可选:后续加上读取时长
|
| 140 |
+
cover_url=cover_url,
|
| 141 |
platform="local",
|
| 142 |
video_id=title,
|
| 143 |
raw_info={
|
| 144 |
'path': file_path
|
| 145 |
},
|
| 146 |
+
video_path=video_path
|
| 147 |
)
|