MeTube: सेल्फ-होस्टेड YouTube डाउनलोड प्रोग्राम
(github.com/alexta69)-
32-बिट ARM बिल्ड बंद
- नया Node version 32-बिट ARM को सपोर्ट नहीं करता
- security updates और dependency समस्याओं के कारण 64-बिट OS पर migration ज़रूरी
-
MeTube परिचय
- youtube-dl का web GUI (yt-dlp fork का उपयोग)
- YouTube और कई अन्य sites से video download सपोर्ट
Docker से चलाना
-
Docker कमांड
docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube -
docker-compose उदाहरण
version: "3" services: metube: image: ghcr.io/alexta69/metube container_name: metube restart: unless-stopped ports: - "8081:8081" volumes: - /path/to/downloads:/downloads
environment variables से सेटिंग
- UID: वह user ID जिससे MeTube चलेगा (default: 1000)
- GID: वह group ID जिससे MeTube चलेगा (default: 1000)
- UMASK: umask value (default: 022)
- DEFAULT_THEME: default theme (
light,dark,auto, default:auto) - DOWNLOAD_DIR: download save path (default:
/downloads) - AUDIO_DOWNLOAD_DIR: केवल audio downloads के लिए save path (default:
DOWNLOAD_DIR) - DOWNLOAD_DIRS_INDEXABLE: क्या download directories indexable होंगी (default:
false) - CUSTOM_DIRS: क्या custom directory downloads enabled होंगे (default:
true) - CREATE_CUSTOM_DIRS: क्या directories का auto-creation supported है (default:
true) - STATE_DIR: queue persistence files save path (default:
/downloads/.metube) - TEMP_DIR: अस्थायी download files save path (default:
/downloads) - DELETE_FILE_ON_TRASHCAN: UI में delete की गई files को server से भी delete करना है या नहीं (default:
false) - URL_PREFIX: web server का base path (default:
/) - PUBLIC_HOST_URL: UI में दिखने वाले download links का base URL
- PUBLIC_HOST_AUDIO_URL: audio download links का base URL
- OUTPUT_TEMPLATE: download file name template (default:
%(title)s.%(ext)s) - OUTPUT_TEMPLATE_CHAPTER: chapters में बंटी video file name template (default:
%(title)s - %(section_number)s %(section_title)s.%(ext)s) - YTDL_OPTIONS: youtube-dl को pass किए जाने वाले अतिरिक्त options (JSON format)
- YTDL_OPTIONS_FILE:
YTDL_OPTIONSभरने के लिए JSON file path
browser cookies का उपयोग
-
docker-compose.yml में जोड़ें
volumes: - /path/to/cookies:/cookies environment: - YTDL_OPTIONS={"cookiefile":"/cookies/cookies.txt"} -
cookie extraction extension install करें
- Firefox
- Chrome
browser extensions
- Chrome: Google Chrome Webstore से install किया जा सकता है
- Firefox: Firefox Addons से install किया जा सकता है
iOS shortcuts
- iOS shortcut: Safari से URL को MeTube पर भेजता है
- server address और port दर्ज करना ज़रूरी
iOS compatibility
- iOS video file requirements: h264 या h265 video codec और aac audio codec ज़रूरी
- MP4 format में download करते समय "Best (iOS)" option चुना जा सकता है
bookmarklet
- Chrome bookmarklet: अभी खुला web page MeTube पर भेजता है
- HTTPS pages पर उपयोग के लिए HTTPS reverse proxy ज़रूरी
reverse proxy के पीछे चलाना
-
NGINX config उदाहरण
location /metube/ { proxy_pass http://metube:8081; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } -
Apache config उदाहरण
<Location /metube/> ProxyPass http://localhost:8081/ retry=0 timeout=30 ProxyPassReverse http://localhost:8081/ </Location> <Location /metube/socket.io> RewriteEngine On RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:8081/socket.io/$1 [P,L] ProxyPass http://localhost:8081/socket.io retry=0 timeout=30 ProxyPassReverse http://localhost:8081/socket.io </Location> -
Caddy config उदाहरण
example.com { route /metube/* { uri strip_prefix metube reverse_proxy metube:8081 } }
yt-dlp update
- automatic nightly builds: नया yt-dlp version उपलब्ध होने पर अपने आप build और Docker image update होती है
- watchtower install और configure करने की सिफारिश
troubleshooting और issue submit करना
- MeTube, yt-dlp का UI है: yt-dlp से जुड़े issues MeTube project में submit न करें
- yt-dlp command सीधे उपयोग करने की सिफारिश: options test करने के बाद उन्हें
YTDL_OPTIONSमें लागू करें
local build और run
-
ज़रूरी tools: node.js और Python 3.11
cd metube/ui npm install node_modules/.bin/ng build cd .. pip3 install pipenv pipenv install pipenv run python3 app/main.py -
Docker image local build
docker build -t metube .
development notes
- Windows, macOS, Linux पर काम करता है
- VSCode में server चलाने पर download folder उपयोगकर्ता का Downloads folder होता है
GN⁺ का सारांश
- MeTube, youtube-dl का web GUI है, जो कई sites से video download करने की सुविधा देता है
- Docker के साथ इसे आसानी से deploy और configure किया जा सकता है, और कई environment variables से इसे customize किया जा सकता है
- browser extensions और iOS shortcuts के ज़रिए video download करना सुविधाजनक हो जाता है
- yt-dlp के latest version को automatically update करके इसे हमेशा up-to-date रखा जाता है
- मिलती-जुलती functionality देने वाले projects में JDownloader, Video DownloadHelper आदि शामिल हैं
1 टिप्पणियां
Hacker News टिप्पणियाँ
Tube Archivist टेक्निकल चैनलों को archive और index करने के लिए उपयोगी है
मैं YouTube TiVo जैसी सुविधा चाहता हूँ
मैं yt-dlp का इस्तेमाल करके एक simple app बनाने की सोच रहा हूँ
अगर Jellyfin के साथ integrate होने वाला interface हो तो अच्छा होगा
यह थोड़ा अजीब लगता है कि इतने सारे YouTube mirroring tools मौजूद हैं
अगर yt-dlp आधारित server को PiHole की तरह एक simple imager और frontend client app के साथ package किया जाए, तो यह लोकप्रिय हो सकता है
मैं TubeSync इस्तेमाल कर रहा हूँ
मैं Cobalt.tools इस्तेमाल कर रहा हूँ
मैं playlist में जोड़े गए videos को download करके shared Plex server पर store करता हूँ
संबंधित tool के रूप में Yark: YouTube Archiver with Offline UI मौजूद है