MEDIABROWSER 공개 릴리스 - 설치자/패키지 배포 전용 (소스는 별도 저장소)
| build | ||
| VideoDownloader.App | ||
| VideoDownloader.Avalonia | ||
| VideoDownloader.Cli | ||
| VideoDownloader.Core | ||
| VideoDownloader.Tests | ||
| .env.example | ||
| .gitignore | ||
| BACKLOG.md | ||
| BROWSER_FEATURES_PLAN.md | ||
| downloader.py | ||
| MOBILE_PLAN.md | ||
| README.md | ||
| requirements.txt | ||
| VideoDownloader.slnx | ||
비디오 다운로더 (HLS / MP4)
maccms 계열 스트리밍 사이트(tvchak208 등)의 영상을 다운로드하는 도구입니다.
HLS(.m3u8) 분할 재생과 직접 MP4 모두 지원합니다.
기능
- 페이지 URL 자동 분석: 재생페이지 URL만 넣으면
player_aaaa설정 / 정규식 / iframe 플레이어에서 m3u8·mp4 주소를 자동 추출 - HLS 완전 지원: 마스터 재생목록(최고 화질 자동 선택), AES-128 복호화, fMP4(
#EXT-X-MAP) 초기화 세그먼트 - 병렬 다운로드 + 이어받기: 도중에 끊겨도 재실행 시 받은 분할은 건너뜀
- ffmpeg 자동 리먹스: TS / fMP4 → MP4 (
-c copy, 무손실·빠름) - 커스텀 헤더:
--referer등으로 CDN 토큰 인증 대응
준비
pip install -r requirements.txt
# ffmpeg 권장 (https://ffmpeg.org). PATH에 있으면 자동 인식됨.
사용법
1) 가장 간단 — 페이지 URL만
python downloader.py "https://tvchak208.com/index.php/vod/play/id/123367/sid/1/nid/1.html" -o 영상제목
2) m3u8 주소를 직접 넘기기 (가장 확실, 아래 참고)
python downloader.py "https://cdn.example.com/.../index.m3u8" -o 영상제목 --referer "https://tvchak208.com/"
3) 추가 헤더가 필요한 경우
python downloader.py "https://.../index.m3u8" -o 영상제목 \
--referer "https://tvchak208.com/" \
-H "Origin: https://tvchak208.com"
옵션 요약
| 옵션 | 설명 |
|---|---|
-o, --output |
출력 파일명 (확장자 생략 가능, 기본 video) |
--referer |
Referer 헤더. 403/401 날 때 페이지 주소를 지정 |
-H "K: V" |
추가 헤더 (여러 개 가능) |
-c, --concurrency |
동시 연결 수 (기본 8) |
--user-agent |
User-Agent 재정의 |
--keep-parts |
병합 후 분할 임시파일 유지(디버그) |
이 사이트에서 m3u8 주소 직접 구하기 (추천)
페이지 자동 추출이 안 될 때(사이트마다 난독화가 다름) 가장 확실한 방법:
- Chrome/Edge로 재생페이지 열기
F12→ Network(네트워크) 탭- 필터에
m3u8입력 - 영상 재생 버튼 클릭
- 목록에 뜬
.m3u8요청 위에서 우클릭 → Copy → Copy link address - 그 주소를 다운로더에 넘김:
python downloader.py "복사한_m3u8_주소" -o 영상제목 --referer "https://tvchak208.com/"
팁:
index.m3u8(마스터)과*.m3u8(미디어)이 모두 뜰 수 있는데, 마스터를 넘겨도 최고 화질을 자동 선택합니다. 가장 위쪽 m3u8을 고르면 됩니다. 403/401 에러가 나면 반드시--referer로 재생페이지 주소를 지정하세요.
문제 해결
페이지에서 영상 주소를 찾지 못했습니다→ 위 "m3u8 주소 직접 구하기" 방법 사용- 403/401 →
--referer "페이지 주소"추가 (필요시-H "Origin: ..."도 함께) 암호화 영상입니다. pycryptodome 필요→pip install pycryptodome- MP4로 안 변환됨 → ffmpeg 설치 확인 (
ffmpeg -version)