작품 · 03

OmniDL · 올인원 다운로더

Python · yt-dlp · android · offline-first

범용 미디어 가져오기 엔진 —— 아무 링크나 붙여넣으면 자동 인식, 1000+ 사이트의 이미지/영상을 한 번에 다운로드. 안드로이드에서 로컬 실행 · 완전 오프라인 · 서버 제로. Kotlin + Python + yt-dlp 기반.

왜 만들었나

시작은 아주 구체적인 불편이었습니다. 이미지 한 장 저장하려고 앱 하나 설치하고, 영상 하나 저장하려고 또 다른 앱을 설치하고, 특정 사이트의 워터마크 영상을 위해 세 번째 도구를 찾아 헤맸습니다. 다운로드라는 행위가 사이트별로 조각나 있어선 안 됩니다 — 엔진 하나와 그 위의 껍데기 하나면 충분한 일입니다.

yt-dlp는 “하나의 엔진이 웹 전체를 소화한다”가 가능함을 이미 증명했지만, 명령줄 도구입니다. 제가 한 일은 이 엔진을 주머니에 넣는 것이었습니다: 안드로이드에서 로컬로 실행되고, 그 어떤 서버도 거치지 않는.

아키텍처 선택

어려운 점

가장 큰 도전은 Python 런타임의 안드로이드 이식이었습니다. 기기마다 ABI, 저장소 권한, 백그라운드 생존 전략이 제각각입니다. 최종 방안은 Python 환경을 자가 진단하는 리소스 번들로 포장해, 시작 시 항목별로 건강 검진을 하고 부족한 것을 보충하는 것 — 메인 프로그램에 if-else를 쌓는 대신.

현재 상태

← 모든 작품