2025-12-25 19:50:27 +09:00
2025-12-28 19:38:18 +09:00
2022-10-29 17:21:14 +09:00
2025-12-26 22:21:53 +09:00
2025-12-26 22:21:53 +09:00
2022-10-29 17:21:14 +09:00
2025-12-25 19:50:27 +09:00

Anime Downloader for FlaskFarm

Anime Downloader는 FlaskFarm 플랫폼에서 동작하는 애니메이션 자동 다운로드 플러그인입니다. 국내 주요 스트리밍 사이트(Ohli24, Linkkf, Anilife)를 지원하며, 강력한 보안 우회 기능을 탑재하여 안정적인 다운로드를 보장합니다.


🚀 주요 기능 (Key Features)

  • 다중 사이트 지원: Ohli24, Anilife, Linkkf 등 다양한 소스에서 영상 검색 및 다운로드.
  • 강력한 우회 기술 (Anti-Bot Bypass):
    • TLS Fingerprint 변조: curl_cffi를 사용하여 실제 Chrome 브라우저처럼 위장, Cloudflare 및 각종 봇 차단을 무력화합니다.
    • CDN 자동 감지: 스트리밍 서버(CDN)의 도메인이 수시로 변경되더라도 자동으로 감지하여 대응합니다. (예: 14B 가짜 파일 문제 해결)
  • 스마트 다운로드 큐: ffmpegyt-dlp 기반의 큐 시스템으로 안정적인 이어받기 및 재시도를 지원합니다.
  • 사용자 편의성:
    • Proxy 설정: IP 차단 시 손쉽게 우회할 수 있도록 웹 설정 UI에서 프록시 서버를 지정할 수 있습니다.
    • 반응형 UI: 데스크탑과 모바일 모두에 최적화된 Glassmorphism 디자인.

📺 지원 사이트 (Supported Sites)

1. Ohli24 (애니24)

  • 특징: 가장 강력한 보안(Cloudflare)이 적용된 사이트.
  • 기술: curl_cffi를 이용한 Full Browser Impersonation 적용.
  • 기능: 검색, 목록 조회, 자동 다운로드.

2. Linkkf (링크애니)

  • 특징: 빠른 업데이트 속도.
  • 기능: 검색 및 다운로드.

3. Anilife (애니라이프)

  • 특징: 다양한 화질 제공.
  • 기술: Playwright 등을 활용한 브라우저 에뮬레이션(필요 시).

🛠 설치 및 문제 해결 (Troubleshooting)

필수 요구 사항

  • Python 패키지: curl_cffi, lxml, requests, yt-dlp
  • 시스템 도구: ffmpeg (시스템 경로에 설치되어 있어야 함)

자주 묻는 질문 (FAQ)

Q1. 설정 페이지 접근 시 404 오류가 뜹니다.

  • 원인: 플러그인 초기화 파일(plugin.py)이 누락되었기 때문입니다.
  • 해결: plugin.py 파일이 존재하는지 확인하고, 없다면 복구 후 서버를 재시작하세요.

Q2. 검색 시 결과가 없거나 "Document is empty" 오류가 발생합니다.

  • 원인: 사이트의 보안 정책에 의해 접속이 차단된 경우입니다.
  • 해결:
    1. 최신 버전으로 업데이트하세요. (curl_cffi 적용 버전)
    2. 설정 페이지에서 Proxy URL을 비워두거나, 작동하는 유효한 프록시 IP를 입력하세요.

Q3. 다운로드된 파일 용량이 매우 작습니다 (14 Byte 등).

  • 원인: CDN 서버에서 봇 접근을 감지하고 가짜 파일을 보낸 것입니다.
  • 해결: 플러그인 자체적으로 이를 감지하고 우회하는 패치가 적용되었습니다. 최신 버전 사용 시 자동으로 해결됩니다.

⚙️ 설정 가이드

  1. FlaskFarm 웹 > 플러그인 > Anime Downloader > 설정으로 이동합니다.
  2. Proxy URL: 필요한 경우 http://IP:PORT 형식으로 입력 (기본값: 공란).
  3. 저장 경로: 다운로드된 파일이 저장될 경로 설정.
  4. 다운로드 방법: yt-dlp (기본) 추천.

📝 변경 이력 (Changelog)

v0.4.0 (2026-01-02)

  • Discord 알림 개선:
    • 다운로드 완료 시에만 알림 전송 (시작 시 알림 제거)
    • 알림 메시지에 포스터 이미지 및 파일명 포함
  • DB 매핑 개선:
    • 다운로드 시작 즉시 메타데이터(제목, 에피소드 번호, 화질 등) DB 동기화
    • download_completed에서 모든 필드 정확히 매핑
  • UI/UX 개선:
    • Ohli24 목록에 에피소드 번호 배지 추가 (고대비 노란색)
    • Linkkf 목록에 "자막합침" 버튼 추가 (ffmpeg로 SRT 자막 MP4에 삽입)
  • Linkkf 다운로드 수정:
    • get_downloader 메서드 추가 및 설정 페이지의 다운로드 방식 반영
    • prepare_extra URL 덮어쓰기 버그 수정
    • yt-dlp Fragment 파일 자동 정리
  • 로그 최적화:
    • yt-dlp 진행률 로그 빈도 감소 (10회당 1회)
    • 중복 로그 제거 (download_completed 단일 호출)

v0.3.7 (2026-01-01)

  • 설정 페이지 폴더 탐색 기능 추가:
    • Ohli24, Anilife, Linkkf 모든 설정 페이지에 폴더 탐색 버튼 적용
    • 저장 폴더 옆 "탐색" 버튼 클릭 시 모달 폴더 브라우저 팝업
    • .. (상위 폴더), . (현재 폴더) 네비게이션 지원
    • 더블클릭으로 하위 폴더 진입, 클릭으로 선택
    • 최소/최대 높이 설정으로 일관된 UI 제공 (min-height: 300px, max-height: 600px)

v0.3.3 (2026-01-01)

  • Ohli24 Play 버튼 구현:
    • 요청 페이지에서 파일이 존재할 경우 즉시 재생 가능한 "Play" 버튼 추가
    • VideoJS 기반의 비디오 플레이어 및 플레이리스트 UI 적용 (Linkkf와 동일한 UX 제공)
    • 백그라운드 파일 감지 로직 개선 (파일명의 해상도 부분 등을 glob 패턴으로 유연하게 매칭)
  • 모바일 UI 최적화:
    • Ohli24 요청 페이지에서 모바일 상단 메뉴가 컨텐츠를 가리는 현상 수정 (CSS 미디어 쿼리 적용)
  • Linkkf 리팩토링 및 개선:
    • 카테고리 데이터 소스를 API 기반(singlefilter.php)으로 전면 전환하여 안정성 확보
    • "완결" 버튼 제거 및 "방영중" 버튼 클릭 시 "Anime List" 로드되도록 변경
    • 검색창 및 버튼 UI 디자인 개선 (높이 조정, 정렬 수정, "Elegant" 스타일 적용)
    • "Top" 카테고리를 내부 API 연동으로 전환하여 정확도 향상

v0.3.0 (2025-12-31)

  • VideoJS 플레이리스트: 비디오 플레이어에서 다음 에피소드 자동 재생
  • 플레이리스트 UI: 이전/다음 버튼, 에피소드 목록 토글
  • 실시간 갱신: 플레이어 열려있을 때 10초마다 새 에피소드 감지 및 알림

v0.2.2 (2025-12-31)

  • 해상도 자동 감지: m3u8 master playlist에서 해상도(1080p/720p 등)를 파싱하여 파일명에 반영
  • Discord 알림 개선: 큰 썸네일 이미지, Discord Blurple 색상, ISO 타임스탬프 적용
  • Queue 페이지 UI: 좌우 여백을 다른 페이지들과 일치하도록 수정
  • Pre-commit hook: 커밋 시 info.yaml 버전 자동 증가 (patch 버전)

v0.2.1 (2025-12-30)

  • CDN 보안 우회: cdndania.com 쿠키 기반 인증 처리 (curl_cffi 세션 유지)
  • CdndaniaDownloader: 별도 프로세스 기반 HLS 세그먼트 다운로더 추가
  • 프록시 지원 강화: 세그먼트 다운로드 시 프록시 적용
Description
anime_downloader for ff
Readme 29 MiB
Languages
HTML 48.5%
Python 45.3%
CSS 2.4%
Jupyter Notebook 1.9%
JavaScript 1.7%
Other 0.2%