v0.2.17: Add yt-dlp HTTP headers support (--add-header)

- Pass headers dict to yt-dlp as --add-header arguments
- Move 'linkkf' from ffmpeg_hls to ytdlp_aria2 downloader mapping
- Fix Linkkf CDN redirect issue (Referer header required)
This commit is contained in:
2026-01-08 01:30:29 +09:00
parent ace56dfd73
commit 5afb082692
4 changed files with 12 additions and 3 deletions

View File

@@ -3,6 +3,10 @@
FlaskFarm용 범용 다운로드 매니저 플러그인입니다. FlaskFarm용 범용 다운로드 매니저 플러그인입니다.
여러 다운로더 플러그인(YouTube, Anime 등)의 다운로드 요청을 통합 관리하고 큐(Queue)를 제공합니다. 여러 다운로더 플러그인(YouTube, Anime 등)의 다운로드 요청을 통합 관리하고 큐(Queue)를 제공합니다.
## v0.2.17 변경사항 (2026-01-08)
- **yt-dlp HTTP 헤더 지원**: `options.headers` 딕셔너리에서 `--add-header` 인자를 생성하여 Referer/User-Agent 등 커스텀 헤더를 yt-dlp에 전달합니다.
- **Linkkf CDN 리다이렉트 해결**: Referer 헤더 없이 m3u8 URL 접근 시 Google Cloud로 리다이렉트되던 문제 수정.
## v0.2.15 변경사항 (2026-01-08) ## v0.2.15 변경사항 (2026-01-08)
- **삭제 로직 버그 수정**: 메모리에 실시간으로 로드된 다운로드 항목을 삭제할 때, 메모리에서 먼저 제거되어 DB 데이터가 남던 순서 오류를 수정했습니다. - **삭제 로직 버그 수정**: 메모리에 실시간으로 로드된 다운로드 항목을 삭제할 때, 메모리에서 먼저 제거되어 DB 데이터가 남던 순서 오류를 수정했습니다.

View File

@@ -8,11 +8,11 @@ from .base import BaseDownloader
def get_downloader(source_type: str) -> Optional[BaseDownloader]: def get_downloader(source_type: str) -> Optional[BaseDownloader]:
"""소스 타입에 맞는 다운로더 인스턴스 반환""" """소스 타입에 맞는 다운로더 인스턴스 반환"""
if source_type in ('youtube', 'general'): if source_type in ('youtube', 'general', 'linkkf'):
from .ytdlp_aria2 import YtdlpAria2Downloader from .ytdlp_aria2 import YtdlpAria2Downloader
return YtdlpAria2Downloader() return YtdlpAria2Downloader()
elif source_type in ('ani24', 'linkkf', 'hls'): elif source_type in ('ani24', 'hls'):
from .ffmpeg_hls import FfmpegHlsDownloader from .ffmpeg_hls import FfmpegHlsDownloader
return FfmpegHlsDownloader() return FfmpegHlsDownloader()

View File

@@ -99,6 +99,11 @@ class YtdlpAria2Downloader(BaseDownloader):
if options.get('proxy'): if options.get('proxy'):
cmd.extend(['--proxy', options['proxy']]) cmd.extend(['--proxy', options['proxy']])
# HTTP 헤더 추가 (Referer 등 - Linkkf 등 리다이렉트 방지용)
if options.get('headers'):
for key, value in options['headers'].items():
cmd.extend(['--add-header', f'{key}:{value}'])
# FFmpeg 경로 자동 감지 및 설정 # FFmpeg 경로 자동 감지 및 설정
ffmpeg_path = options.get('ffmpeg_path') or P.ModelSetting.get('ffmpeg_path') ffmpeg_path = options.get('ffmpeg_path') or P.ModelSetting.get('ffmpeg_path')

View File

@@ -1,6 +1,6 @@
title: "GDM" title: "GDM"
package_name: gommi_downloader_manager package_name: gommi_downloader_manager
version: '0.2.16' version: '0.2.18'
description: FlaskFarm 범용 다운로더 큐 - YouTube, 애니24, 링크애니, Anilife 지원 description: FlaskFarm 범용 다운로더 큐 - YouTube, 애니24, 링크애니, Anilife 지원
developer: projectdx developer: projectdx
home: https://gitea.yommi.duckdns.org/projectdx/gommi_downloader_manager home: https://gitea.yommi.duckdns.org/projectdx/gommi_downloader_manager