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용 범용 다운로드 매니저 플러그인입니다.
여러 다운로더 플러그인(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 데이터가 남던 순서 오류를 수정했습니다.

View File

@@ -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()

View File

@@ -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')

View File

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