Skip to content

rayshoo/espresso

Repository files navigation

☕ Espresso

유튜브 링크와 저장 폴더만 지정하면, 선택한 형식으로 음악·영상을 저장해 주는 데스크탑 앱입니다.

  • 음악 추출: MP3(128~320kbps) · M4A(원본 AAC, 무변환) · WAV(무손실)
  • 영상 저장: MP4 (최고 화질 영상+음성 병합)
  • 자동 메타데이터: 제목·아티스트 정보와 앨범 아트(썸네일) 자동 임베드
  • 실시간 진행률: 다운로드 속도·남은 시간·진행 로그 표시
  • 로그인 불필요: 링크와 폴더만 있으면 바로 동작

동작 방식

백엔드는 Go로 작성되었고, 실제 다운로드/변환은 검증된 오픈소스 도구인 yt-dlp(다운로드)와 ffmpeg(포맷 변환)를 호출해 처리합니다.

이 두 도구는 최초 실행 시 자동으로 내려받아 앱 데이터 폴더 (%LOCALAPPDATA%\espresso\bin)에 저장됩니다. 시스템 PATH에 이미 설치돼 있으면 그것을 그대로 사용합니다. (별도 설치 불필요, 최초 1회만 인터넷 연결 필요)

기술 스택

구분 사용 기술
프레임워크 Wails3 (v3.0.0-alpha.74)
백엔드 Go 1.25+
프론트엔드 React 18 + TypeScript + Vite
다운로드/변환 yt-dlp · ffmpeg (자동 다운로드)

프로젝트 구조

espresso/
├── main.go                      # 앱 진입점 · 윈도우/서비스 등록
├── download_service.go          # 정보 조회 · 다운로드 · 진행 이벤트 (프론트 바인딩)
├── exec_windows.go / _other.go  # 자식 프로세스 콘솔 창 숨김 (플랫폼별)
├── internal/binaries/
│   └── manager.go               # yt-dlp/ffmpeg 탐지 및 자동 다운로드
└── frontend/
    └── src/
        ├── App.tsx              # 메인 화면 (URL·형식·폴더·진행률)
        └── App.css             # 스타일

개발

사전 요구사항: Go, Node.js, Wails3 CLI, Task

# 개발 모드 (핫 리로드)
wails3 task dev

# 프로덕션 빌드 → bin/espresso.exe
wails3 task build

# 배포용 패키지
wails3 task package

사용법

  1. 앱을 실행합니다. (최초 실행 시 도구 다운로드가 끝날 때까지 잠시 대기)
  2. 유튜브 링크를 붙여넣고 정보 버튼으로 제목·길이를 확인합니다. (선택)
  3. 저장 형식(MP3/M4A/WAV/영상)을 고릅니다. MP3는 음질(kbps)도 선택할 수 있습니다.
  4. 폴더 선택으로 저장 위치를 지정합니다.
  5. 다운로드를 누르면 진행률과 함께 변환까지 완료됩니다.

참고

개인적으로 소유하거나 라이선스가 허용된 콘텐츠에 한해 사용하세요. 유튜브 서비스 약관 및 저작권법 준수는 사용자 책임입니다.

About

youtube download & music converter

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors