YTDL 튜브저장소

YouTube 영상을 다양한 포맷과 화질로 변환·저장할 수 있는 웹 애플리케이션입니다.

3주 전 조회 188 28,000.0
문의하기
YTDL 튜브저장소
JavaScript PHP

프로젝트 소개

YTDL · 튜브저장소는 YouTube 영상을 다양한 포맷과 화질로 변환·저장할 수 있는 웹 애플리케이션입니다. Apache + PHP 환경에 추가 서버 설정(리버스 프록시, Node.js, Flask 등) 없이 바로 올려서 사용할 수 있도록 설계되었습니다.

주요 기능

📥 다운로드 포맷 및 화질

포맷 설명 화질 선택
MP4 영상 + 오디오 병합 144p · 360p · 480p · 720p · 1080p · 2160p (4K)
MP3 오디오 추출 128 · 192 · 256 · 320 kbps
WEBM 웹 최적화 영상 144p ~ 4K
M4A 고품질 오디오 최고 품질 고정

🎬 동영상 분석

분석 버튼 클릭 시 메타데이터를 수집해 표시합니다.

  • 제목 · 채널명 · 조회수 · 좋아요 수 · 업로드일 · 재생시간
  • 설명 (최대 300자, 펼치기/접기)
  • 사용 가능한 해상도 dot 표시 (실제 스트림 기준)
  • YouTube Shorts 자동 감지 — 원본 URL의 /shorts/ 경로 또는 재생시간 60초 이하

▶ 미리보기

  • 썸네일 클릭 시 YouTube 임베드 플레이어 인라인 로드 (autoplay)
  • 다운로드 완료 후 MP4·WEBM은 브라우저 내 영상 미리보기 플레이어 표시

⚙️ 내장 옵션

옵션 지원 포맷 내용
자막 포함 MP4 전용 한국어·영어 자동자막 SRT 내장 (--embed-subs)
썸네일 저장 MP4 · MP3 · M4A 커버아트 내장 (--embed-thumbnail)
메타데이터 전 포맷 제목·채널·날짜 태그 내장 (--embed-metadata)

🕘 다운로드 히스토리

  • 세션 중 최근 6개 목록 유지
  • 썸네일 · 제목 · 포맷 · 화질 표시
  • 항목별 재다운로드 버튼 (로딩 애니메이션 포함)
  • 썸네일 로드 실패 시 hqdefault.jpg 폴백
  • 회원 / 비회원 구분 다운로드 제한

🎨 UI · 테마

  • 6종 컬러 팔레트 — Ocean · Violet · Emerald · Rose · Amber · Slate
    • PHP 세션 기반 랜덤 배정 (새로고침 유지 · 새 탭 재추첨)
    • 다크/라이트 각각 별도 CSS 변수 세트
  • 야간/주간 모드 토글 (localStorage 저장)
  • 로딩 점 애니메이션 (분석 중 · 히스토리 재다운로드 중)
  • 진행률 바 시뮬레이션 (변환 중 0→95%, 완료 시 100%)
  • 토스트 알림 (성공/오류 구분)
  • 반응형 레이아웃

기술적 특징

썸네일 폴백 시스템 서버 사이드 curl로 maxresdefault → sddefault → hqdefault → mqdefault → default 순으로 실제 존재 여부를 확인 후 리다이렉트합니다. 브라우저에 404가 전달되지 않습니다. 결과값을 1시간 캐시하며 하루 1회 만료 파일을 자동 청소합니다.

파일명 완벽 처리 Content-Disposition: filename*=UTF-8''... RFC 5987 방식으로 한글·이모지·특수문자 파일명을 정상 처리합니다. ASCII 안전본(filename=)을 동시에 제공해 구형 브라우저도 대응합니다.

임시 파일 자동 관리 변환 완료 후 영상·자막·썸네일 등 관련 파일 전체를 즉시 삭제합니다. 다운로드 요청마다 1시간 초과 잔여 파일도 함께 청소합니다.

URL 정규화 /shorts/IDwatch?v=ID, youtu.be/IDwatch?v=ID 자동 변환. watch?v= · shorts/ · youtu.be/ · embed/ · live/ 5가지 형식 지원.

보안

  • Referer 검증 (다운로드 엔드포인트)
  • escapeshellarg() 로 커맨드 인젝션 방지
  • YouTube 도메인 정규식 화이트리스트 검증
  • Video ID 패턴 검증

수정 이력 (4)

기능추가 2일 전

다운로드 인코딩 변환 과정 실시간 확인

인코딩 알고리즘 2주 전

인코딩시 영상과 음성 싱크 개선

다운로드 횟수제한 기능추가 2주 전

비회원 1일 다운로드 횟수 제한, 회원 무제한

다운로드 권한 선택 기능 추가 2주 전

회원 비회원 다운로드 권한 선택 기능 추가

댓글 (2)

로그인 후 댓글을 남길 수 있습니다.

좋아요! 주소 입력창에 전에 입력했던 주소 삭제 버튼만 추가 됐으면 더 좋겠습니다!

SmartWeb

붙여넣기 클릭하면 자동으로 교체 됩니다.^^