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:
@@ -3,6 +3,10 @@
|
||||
FlaskFarm용 범용 다운로드 매니저 플러그인입니다.
|
||||
여러 다운로더 플러그인(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)
|
||||
- **삭제 로직 버그 수정**: 메모리에 실시간으로 로드된 다운로드 항목을 삭제할 때, 메모리에서 먼저 제거되어 DB 데이터가 남던 순서 오류를 수정했습니다.
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ from .base import 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
|
||||
return YtdlpAria2Downloader()
|
||||
|
||||
elif source_type in ('ani24', 'linkkf', 'hls'):
|
||||
elif source_type in ('ani24', 'hls'):
|
||||
from .ffmpeg_hls import FfmpegHlsDownloader
|
||||
return FfmpegHlsDownloader()
|
||||
|
||||
|
||||
@@ -98,6 +98,11 @@ class YtdlpAria2Downloader(BaseDownloader):
|
||||
# 프록시
|
||||
if options.get('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_path = options.get('ffmpeg_path') or P.ModelSetting.get('ffmpeg_path')
|
||||
|
||||
Reference in New Issue
Block a user