diff --git a/backend/app/downloaders/bilibili_downloader.py b/backend/app/downloaders/bilibili_downloader.py index 2f686ba65..91c94e3db 100644 --- a/backend/app/downloaders/bilibili_downloader.py +++ b/backend/app/downloaders/bilibili_downloader.py @@ -52,7 +52,8 @@ def download( video_url: str, output_dir: Union[str, None] = None, quality: DownloadQuality = "fast", - need_video:Optional[bool]=False + need_video:Optional[bool]=False, + skip_download: bool = False ) -> AudioDownloadResult: if output_dir is None: output_dir = get_data_dir() @@ -81,12 +82,13 @@ def download( ydl_opts['cookiefile'] = self._cookiefile with yt_dlp.YoutubeDL(ydl_opts) as ydl: - info = ydl.extract_info(video_url, download=True) + # skip_download=True 时只提取元信息(标题/时长/封面),不下载音视频文件 + info = ydl.extract_info(video_url, download=not skip_download) video_id = info.get("id") title = info.get("title") duration = info.get("duration", 0) cover_url = info.get("thumbnail") - audio_path = os.path.join(output_dir, f"{video_id}.mp3") + audio_path = os.path.join(output_dir, f"{video_id}.mp3") if not skip_download else None return AudioDownloadResult( file_path=audio_path,