YT Saver
Save a video in the quality you pick. Runs on your own device.अपनी पसंद की क्वालिटी में वीडियो सेव करें। आपके अपने डिवाइस पर चलता है।
YT Saver is a small app that runs on your own computer or phone. Paste a YouTube link, pick a quality from highest to lowest, and save the file. It runs in a terminal on Windows, Android (Termux), Linux and Mac, and this page walks you through the setup step by step.YT Saver एक छोटा ऐप है जो आपके अपने कंप्यूटर या फ़ोन पर चलता है। YouTube का लिंक पेस्ट करें, सबसे ऊँची से सबसे कम तक कोई क्वालिटी चुनें, और फ़ाइल सेव करें। यह Windows, Android (Termux), Linux और Mac पर टर्मिनल में चलता है, और यह पेज सेटअप स्टेप-बाय-स्टेप समझाता है।
- Platform: Windows · Android (Termux) · Linux · Macप्लेटफ़ॉर्म: Windows · Android (Termux) · Linux · Mac
- Type: Terminal appप्रकार: टर्मिनल ऐप
There is nothing to download here. The guide below installs what is needed and then gets the app with git clone, step by step, for your device.यहाँ से कुछ डाउनलोड नहीं करना। नीचे की गाइड आपके डिवाइस के लिए ज़रूरी चीज़ें इंस्टॉल करती है और फिर git clone से ऐप ले आती है, स्टेप-बाय-स्टेप। Source code on GitHub ↗GitHub पर सोर्स कोड ↗
How YT Saver worksYT Saver कैसे काम करता है
- Set it up once on your device with the guide below.नीचे की गाइड से इसे अपने डिवाइस पर एक बार सेटअप करें।
- Paste a YouTube link and press "Find qualities".YouTube का लिंक पेस्ट करें और “Find qualities” दबाएँ।
- Pick a quality and press "Save video". The file is saved to your Downloads folder.क्वालिटी चुनें और “Save video” दबाएँ। फ़ाइल आपके Downloads फ़ोल्डर में सेव हो जाती है।
Setup guideसेटअप गाइड
YT Saver runs on your own device, not on a server. Choose your device below and follow the steps. The first setup takes a while because you install a few free programs; after that, starting the app is one command.YT Saver आपके अपने डिवाइस पर चलता है, किसी सर्वर पर नहीं। नीचे अपना डिवाइस चुनें और स्टेप्स फॉलो करें। पहली बार सेटअप में समय लगता है क्योंकि कुछ मुफ़्त प्रोग्राम इंस्टॉल करने होते हैं; उसके बाद ऐप चालू करने के लिए बस एक कमांड चलानी होती है।
Why an app and not a website? YouTube often blocks the servers that websites run on, so a downloader hosted on a website stops working. On your own device it uses your own internet connection instead. The app only listens on 127.0.0.1, which means only that device can open it; other devices on your Wi-Fi cannot.वेबसाइट की जगह ऐप क्यों? YouTube अक्सर उन सर्वरों को ब्लॉक कर देता है जिन पर वेबसाइटें चलती हैं, इसलिए वेबसाइट पर रखा डाउनलोडर काम करना बंद कर देता है। अपने डिवाइस पर चलाने से आपका अपना इंटरनेट कनेक्शन इस्तेमाल होता है। ऐप सिर्फ़ 127.0.0.1 पर सुनता है, यानी उसे सिर्फ़ वही डिवाइस खोल सकता है; आपके Wi-Fi के दूसरे डिवाइस नहीं खोल सकते।
Stuck? Ask an AI assistant.कहीं अटक गए? किसी AI असिस्टेंट से पूछें।
Copy this whole guide and paste it into Gemini, ChatGPT or Claude together with your question. The plain-text versions below contain every device, with nothing hidden.यह पूरी गाइड कॉपी करके अपने सवाल के साथ Gemini, ChatGPT या Claude में पेस्ट करें। नीचे के प्लेन-टेक्स्ट वर्शन में हर डिवाइस की जानकारी है, कुछ भी छिपा नहीं।
What you needआपको क्या चाहिए
- A Windows PC, Mac, Linux computer or an Android phone, with internet. iPhone and iPad are not supported.इंटरनेट के साथ Windows PC, Mac, Linux कंप्यूटर या Android फ़ोन। iPhone और iPad सपोर्टेड नहीं हैं।
- Git, which downloads the app from GitHub. The steps below install it.Git, जो ऐप को GitHub से डाउनलोड करता है। नीचे के स्टेप्स इसे इंस्टॉल करते हैं।
- Python 3.11 or newer. The steps below install it.Python 3.11 या नया। नीचे के स्टेप्स इसे इंस्टॉल करते हैं।
- ffmpeg, which joins the video and the audio into one file. The steps install it.ffmpeg, जो वीडियो और ऑडियो को जोड़कर एक फ़ाइल बनाता है। स्टेप्स इसे इंस्टॉल करते हैं।
- A JavaScript engine that YouTube needs: Node.js 22 or newer, or Deno 2.3 or newer. The steps install one of them.YouTube के लिए एक JavaScript इंजन: Node.js 22 या नया, या Deno 2.3 या नया। स्टेप्स इनमें से एक इंस्टॉल करते हैं।
Which device do you have?आपके पास कौन-सा डिवाइस है?
Tap your device. Its full guide opens below.अपने डिवाइस पर टैप करें। उसकी पूरी गाइड नीचे खुल जाएगी।
Windows 10 / 11Windows 10 / 11
Uses PowerShell and winget (built into Windows 10/11).PowerShell और winget इस्तेमाल होता है (Windows 10/11 में पहले से होता है)।
ℹ Written from the official documentation of winget, Python, ffmpeg and Node.js. The author has not run these steps on a Windows PC yet. If one fails, see “If something goes wrong” below.यह winget, Python, ffmpeg और Node.js के आधिकारिक दस्तावेज़ों से लिखा गया है। लेखक ने ये स्टेप्स अभी Windows PC पर चलाकर नहीं देखे हैं। कोई स्टेप फेल हो तो नीचे “कुछ गड़बड़ हो तो” देखें।
Open PowerShellPowerShell खोलें
Click the Start button, type PowerShell and press Enter. A window opens. You will paste the commands below into it (Ctrl+V, or right-click).Start बटन दबाएँ, PowerShell लिखें और Enter दबाएँ। एक विंडो खुलेगी। नीचे की कमांड इसी में पेस्ट करनी हैं (Ctrl+V, या राइट-क्लिक)।
Install Git, Python, ffmpeg and Node.jsGit, Python, ffmpeg और Node.js इंस्टॉल करें
Run these four lines one by one (copy a line, paste it, press Enter, wait until it finishes).ये चार लाइनें एक-एक करके चलाएँ (एक लाइन कॉपी करें, पेस्ट करें, Enter दबाएँ, खत्म होने तक रुकें)।
winget install -e --id Git.Git winget install -e --id Python.Python.3.13 winget install -e --id Gyan.FFmpeg winget install -e --id OpenJS.NodeJS.LTSIf it asks you to agree to terms, type Y and press Enter. When all four are done, close PowerShell and open it again. Windows needs this to find the new programs.अगर यह शर्तें मानने को कहे, तो Y लिखकर Enter दबाएँ। चारों हो जाएँ तो PowerShell बंद करके दोबारा खोलें। नए प्रोग्राम ढूँढने के लिए Windows को यह चाहिए।
Check that they installedजाँचें कि इंस्टॉल हो गए
git --version py --version ffmpeg -version node --versiongit should show a version number. py should show Python 3.11 or higher (for example 3.13), and node should show v22 or higher. ffmpeg should print a few lines starting with “ffmpeg version”.git को वर्शन नंबर दिखाना चाहिए। py में Python 3.11 या ऊपर दिखना चाहिए (जैसे 3.13), और node में v22 या ऊपर। ffmpeg को “ffmpeg version” से शुरू होने वाली कुछ लाइनें दिखानी चाहिए।
Get the appऐप का कोड लें
This downloads the app from GitHub into a folder called yt-saver in your user folder, and goes into it.यह GitHub से ऐप को आपके यूज़र फ़ोल्डर में yt-saver नाम के फ़ोल्डर में उतारता है और उसके अंदर चला जाता है।
cd $HOME git clone https://github.com/Abhishek862009/yt-saver.git cd yt-saverSet it up (first time only)सेटअप करें (सिर्फ़ पहली बार)
py -m venv .venv .\.venv\Scripts\python.exe -m pip install -r requirements.txtThis downloads the libraries the app needs. Wait until the prompt comes back.यह ऐप की ज़रूरी लाइब्रेरी डाउनलोड करता है। प्रॉम्प्ट वापस आने तक रुकें।
Start the appऐप चालू करें
.\.venv\Scripts\python.exe app.pyWhen the window shows “YT Saver is running”, open http://127.0.0.1:5000 in your browser (on the same device). Keep the window open while you use the app.जब विंडो में “YT Saver is running” दिखे, तो उसी डिवाइस के ब्राउज़र में http://127.0.0.1:5000 खोलें। ऐप इस्तेमाल करते समय यह विंडो खुली रहने दें।
Next timeअगली बार
You do not need to install anything again. Open PowerShell and run:कुछ दोबारा इंस्टॉल नहीं करना। PowerShell खोलकर ये चलाएँ:
cd $HOME\yt-saver .\.venv\Scripts\python.exe app.pyTo stop the app, click the PowerShell window and press Ctrl+C.ऐप बंद करने के लिए PowerShell विंडो पर क्लिक करके Ctrl+C दबाएँ।
If something goes wrongकुछ गड़बड़ हो तो
“git is not recognized”, “py is not recognized” or “ffmpeg is not recognized”“git is not recognized”, “py is not recognized” या “ffmpeg is not recognized”
Close PowerShell and open it again. If it still fails, install the program by hand from its official site: git-scm.com, python.org (tick “Add python.exe to PATH” in the installer), ffmpeg.org (Windows builds) and nodejs.org.PowerShell बंद करके दोबारा खोलें। फिर भी न चले, तो प्रोग्राम को उसकी आधिकारिक साइट से हाथ से इंस्टॉल करें: git-scm.com, python.org (इंस्टॉलर में “Add python.exe to PATH” पर टिक करें), ffmpeg.org (Windows builds) और nodejs.org।
“winget is not recognized”“winget is not recognized”
Update “App Installer” in the Microsoft Store, or install Git, Python, ffmpeg and Node.js by hand from the sites above.Microsoft Store में “App Installer” अपडेट करें, या ऊपर की साइटों से Git, Python, ffmpeg और Node.js हाथ से इंस्टॉल करें।
The app says port 5000 is already in useऐप कहता है कि port 5000 पहले से इस्तेमाल में है
Start it on another port, then open that port in the browser (here 5001):इसे दूसरे port पर चालू करें और ब्राउज़र में वही port खोलें (यहाँ 5001):
$env:PORT=5001 .\.venv\Scripts\python.exe app.py
How to updateअपडेट कैसे करें
YouTube changes often, so an old copy of the app can stop saving videos, and new versions of the app add improvements. Updating takes about a minute: it gets the newest version of the app and of its libraries. The files you already saved stay where they are.YouTube अक्सर बदलता रहता है, इसलिए ऐप की पुरानी कॉपी वीडियो सेव करना बंद कर सकती है, और ऐप के नए वर्शन में सुधार आते रहते हैं। अपडेट में लगभग एक मिनट लगता है: यह ऐप और उसकी लाइब्रेरी का नया वर्शन ले आता है। जो फ़ाइलें आप पहले सेव कर चुके हैं, वे वहीं रहती हैं।
Stop the appऐप को रोकें
If the app is running, click its window and press Ctrl+C. The prompt comes back when it has stopped. If the app is not running, skip this step.अगर ऐप चल रहा है, तो उसकी विंडो पर क्लिक करके Ctrl+C दबाएँ। रुकने पर प्रॉम्प्ट वापस आ जाता है। ऐप चल नहीं रहा हो, तो यह स्टेप छोड़ दें।
Go to the app folder and get the newest versionऐप के फ़ोल्डर में जाएँ और नया वर्शन लें
git pull downloads the newest version of the app from GitHub into the folder you already have.git pull GitHub से ऐप का नया वर्शन आपके पहले से मौजूद फ़ोल्डर में उतार देता है।
cd $HOME\yt-saver git pullIf it says “Already up to date.”, you already have the newest version. Otherwise it lists the files that changed.अगर “Already up to date.” दिखे, तो आपके पास नया वर्शन पहले से है। नहीं तो यह बदली हुई फ़ाइलों की लिस्ट दिखाता है।
Update the librariesलाइब्रेरी अपडेट करें
.\.venv\Scripts\python.exe -m pip install -U -r requirements.txtIt may print “Requirement already satisfied”. That is fine. Wait until the prompt comes back.यह “Requirement already satisfied” छाप सकता है। यह ठीक है। प्रॉम्प्ट वापस आने तक रुकें।
Start the app againऐप दोबारा चालू करें
.\.venv\Scripts\python.exe app.pyOpen http://127.0.0.1:5000 in your browser and reload the page, so the browser loads the new version.अपने ब्राउज़र में http://127.0.0.1:5000 खोलें और पेज रीलोड करें, ताकि ब्राउज़र नया वर्शन ले।
If the update failsअपडेट न हो तो
git says “fatal: not a git repository”git कहता है “fatal: not a git repository”
This folder was not made with git clone (for example the app was downloaded as a ZIP file), so it cannot update itself. Do the “Get the app” and “Set it up” steps of the setup guide above once more, then start the app from the new folder.यह फ़ोल्डर git clone से नहीं बना (जैसे ऐप ZIP फ़ाइल के रूप में डाउनलोड किया गया), इसलिए यह खुद को अपडेट नहीं कर सकता। ऊपर की सेटअप गाइड के “ऐप का कोड लें” और “सेटअप करें” स्टेप्स एक बार फिर करें, फिर ऐप नए फ़ोल्डर से चालू करें।
git pull says “Your local changes to the following files would be overwritten”git pull कहता है “Your local changes to the following files would be overwritten”
You changed a file inside the app folder. Put your change aside, then pull again:आपने ऐप के फ़ोल्डर में कोई फ़ाइल बदली है। अपना बदलाव एक तरफ़ रख दें, फिर दोबारा pull करें:
git stash git pull
Android phone (with Termux)Android फ़ोन (Termux के साथ)
Termux is a free terminal app for Android. The app runs inside it.Termux Android के लिए मुफ़्त टर्मिनल ऐप है। यह ऐप उसी के अंदर चलता है।
ℹ Written from the Termux package lists and documentation. The author has not run these steps on a phone yet, and the pip step builds some parts on the phone, so it is the most likely one to need a fix. See “If something goes wrong” below.यह Termux की पैकेज लिस्ट और दस्तावेज़ों से लिखा गया है। लेखक ने ये स्टेप्स अभी फ़ोन पर चलाकर नहीं देखे हैं, और pip वाला स्टेप कुछ हिस्से फ़ोन पर ही बनाता है, इसलिए उसी में सबसे ज़्यादा सुधार की ज़रूरत पड़ सकती है। नीचे “कुछ गड़बड़ हो तो” देखें।
Install Termux from F-Droid or GitHubTermux को F-Droid या GitHub से इंस्टॉल करें
Do not use the Google Play version. The Termux team says Google Play is not an official source, and that version is outdated. Download the APK from one of these two places and install it (Android may ask you to allow installs from your browser).Google Play वाला वर्शन इस्तेमाल न करें। Termux टीम के अनुसार Google Play आधिकारिक स्रोत नहीं है, और वह वर्शन पुराना है। इन दो जगहों में से किसी से APK डाउनलोड करके इंस्टॉल करें (Android आपके ब्राउज़र से इंस्टॉल की अनुमति माँग सकता है)।
Open Termux and update itTermux खोलें और अपडेट करें
pkg updateIf it asks a question, press Enter (or type Y and press Enter).कोई सवाल पूछे तो Enter दबाएँ (या Y लिखकर Enter)।
Install Python, ffmpeg, Node.js and GitPython, ffmpeg, Node.js और Git इंस्टॉल करें
pkg install -y python python-pip ffmpeg nodejs gitGet the appऐप का कोड लें
cd ~ git clone https://github.com/Abhishek862009/yt-saver.git cd yt-saverSet it up (first time only)सेटअप करें (सिर्फ़ पहली बार)
pip install -r requirements.txtThis can take several minutes because some parts are built on the phone. Wait until the prompt comes back. If it stops with an error, open “If something goes wrong” below.इसमें कई मिनट लग सकते हैं क्योंकि कुछ हिस्से फ़ोन पर ही बनते हैं। प्रॉम्प्ट वापस आने तक रुकें। एरर के साथ रुक जाए तो नीचे “कुछ गड़बड़ हो तो” खोलें।
Start the appऐप चालू करें
python app.pyWhen Termux shows “YT Saver is running”, open Chrome (or any browser) on the same phone and go to http://127.0.0.1:5000. Keep Termux running: pull down the notification area and tap “Acquire wakelock” on the Termux notification, so Android does not put it to sleep.जब Termux में “YT Saver is running” दिखे, तो उसी फ़ोन पर Chrome (या कोई भी ब्राउज़र) खोलकर http://127.0.0.1:5000 पर जाएँ। Termux को चालू रखें: नोटिफ़िकेशन एरिया नीचे खींचें और Termux की नोटिफ़िकेशन पर “Acquire wakelock” दबाएँ, ताकि Android इसे सुला न दे।
Next timeअगली बार
cd ~/yt-saver python app.pyTo stop the app, press Ctrl+C in Termux (or swipe Termux away).ऐप बंद करने के लिए Termux में Ctrl+C दबाएँ (या Termux को स्वाइप करके हटा दें)।
If something goes wrongकुछ गड़बड़ हो तो
pip says “externally-managed-environment”pip कहता है “externally-managed-environment”
Run the install again with one extra word:एक शब्द और जोड़कर इंस्टॉल दोबारा चलाएँ:
pip install --break-system-packages -r requirements.txtpip stops with “Failed building wheel” or says clang is missingpip “Failed building wheel” के साथ रुकता है या कहता है कि clang नहीं है
Install the build tools, then run the pip line again:बिल्ड टूल इंस्टॉल करें, फिर pip वाली लाइन दोबारा चलाएँ:
pkg install -y clang make pip install -r requirements.txtThe app stops after a while with the screen offस्क्रीन बंद होने पर ऐप कुछ देर बाद रुक जाता है
Tap “Acquire wakelock” on the Termux notification, and in Android settings set battery usage for Termux to “Unrestricted” (the wording differs by phone).Termux की नोटिफ़िकेशन पर “Acquire wakelock” दबाएँ, और Android सेटिंग्स में Termux का बैटरी इस्तेमाल “Unrestricted” करें (शब्द फ़ोन के हिसाब से अलग हो सकते हैं)।
How to updateअपडेट कैसे करें
YouTube changes often, so an old copy of the app can stop saving videos, and new versions of the app add improvements. Updating takes about a minute: it gets the newest version of the app and of its libraries. The files you already saved stay where they are.YouTube अक्सर बदलता रहता है, इसलिए ऐप की पुरानी कॉपी वीडियो सेव करना बंद कर सकती है, और ऐप के नए वर्शन में सुधार आते रहते हैं। अपडेट में लगभग एक मिनट लगता है: यह ऐप और उसकी लाइब्रेरी का नया वर्शन ले आता है। जो फ़ाइलें आप पहले सेव कर चुके हैं, वे वहीं रहती हैं।
Stop the appऐप को रोकें
If the app is running in Termux, press Ctrl+C in Termux. The prompt comes back when it has stopped. If the app is not running, skip this step.अगर ऐप Termux में चल रहा है, तो Termux में Ctrl+C दबाएँ। रुकने पर प्रॉम्प्ट वापस आ जाता है। ऐप चल नहीं रहा हो, तो यह स्टेप छोड़ दें।
Go to the app folder and get the newest versionऐप के फ़ोल्डर में जाएँ और नया वर्शन लें
git pull downloads the newest version of the app from GitHub into the folder you already have.git pull GitHub से ऐप का नया वर्शन आपके पहले से मौजूद फ़ोल्डर में उतार देता है।
cd ~/yt-saver git pullIf it says “Already up to date.”, you already have the newest version. Otherwise it lists the files that changed.अगर “Already up to date.” दिखे, तो आपके पास नया वर्शन पहले से है। नहीं तो यह बदली हुई फ़ाइलों की लिस्ट दिखाता है।
Update the librariesलाइब्रेरी अपडेट करें
pip install -U -r requirements.txtIt may print “Requirement already satisfied”. That is fine. Wait until the prompt comes back.यह “Requirement already satisfied” छाप सकता है। यह ठीक है। प्रॉम्प्ट वापस आने तक रुकें।
Start the app againऐप दोबारा चालू करें
python app.pyOpen http://127.0.0.1:5000 in your browser and reload the page, so the browser loads the new version.अपने ब्राउज़र में http://127.0.0.1:5000 खोलें और पेज रीलोड करें, ताकि ब्राउज़र नया वर्शन ले।
If the update failsअपडेट न हो तो
git says “fatal: not a git repository”git कहता है “fatal: not a git repository”
This folder was not made with git clone (for example the app was downloaded as a ZIP file), so it cannot update itself. Do the “Get the app” and “Set it up” steps of the setup guide above once more, then start the app from the new folder.यह फ़ोल्डर git clone से नहीं बना (जैसे ऐप ZIP फ़ाइल के रूप में डाउनलोड किया गया), इसलिए यह खुद को अपडेट नहीं कर सकता। ऊपर की सेटअप गाइड के “ऐप का कोड लें” और “सेटअप करें” स्टेप्स एक बार फिर करें, फिर ऐप नए फ़ोल्डर से चालू करें।
git pull says “Your local changes to the following files would be overwritten”git pull कहता है “Your local changes to the following files would be overwritten”
You changed a file inside the app folder. Put your change aside, then pull again:आपने ऐप के फ़ोल्डर में कोई फ़ाइल बदली है। अपना बदलाव एक तरफ़ रख दें, फिर दोबारा pull करें:
git stash git pullpip says “externally-managed-environment”pip कहता है “externally-managed-environment”
Run the library update again with one extra word:एक शब्द और जोड़कर लाइब्रेरी अपडेट दोबारा चलाएँ:
pip install --break-system-packages -U -r requirements.txt
Linux (Ubuntu, Debian, Fedora, Arch)Linux (Ubuntu, Debian, Fedora, Arch)
Uses the terminal. The commands for Ubuntu and Debian are shown first.टर्मिनल इस्तेमाल होता है। Ubuntu और Debian की कमांड पहले दी गई हैं।
✓ The git clone, set-up and start steps were run on Ubuntu 24.04. The package-install lines (apt, dnf, pacman) and the Deno / nvm installers were not run by the author; they are the official ones from each project.git clone, सेटअप और स्टार्ट वाले स्टेप्स Ubuntu 24.04 पर चलाकर देखे गए हैं। पैकेज इंस्टॉल की लाइनें (apt, dnf, pacman) और Deno / nvm इंस्टॉलर लेखक ने नहीं चलाए; ये हर प्रोजेक्ट की आधिकारिक कमांड हैं।
Open a terminalटर्मिनल खोलें
On most systems the shortcut is Ctrl+Alt+T. Otherwise search for “Terminal” in your applications.ज़्यादातर सिस्टम में शॉर्टकट Ctrl+Alt+T है। नहीं तो अपने एप्लिकेशन में “Terminal” खोजें।
Install Git, Python, ffmpeg and curlGit, Python, ffmpeg और curl इंस्टॉल करें
Use the lines for your Linux:अपने Linux की लाइनें इस्तेमाल करें:
Ubuntu / Debian / Linux MintUbuntu / Debian / Linux Mint
sudo apt update sudo apt install -y python3 python3-venv ffmpeg curl gitFedoraFedora
sudo dnf install -y python3 ffmpeg-free curl gitArch / ManjaroArch / Manjaro
sudo pacman -S --needed python ffmpeg curl gitCheck the Python versionPython का वर्शन जाँचें
python3 --versionIt must say 3.11 or higher. If it says 3.10 or lower, your Linux is too old for this app: update it (for example to Ubuntu 24.04) or install a newer Python from python.org.इसमें 3.11 या ऊपर दिखना चाहिए। 3.10 या कम दिखे, तो आपका Linux इस ऐप के लिए बहुत पुराना है: उसे अपडेट करें (जैसे Ubuntu 24.04) या python.org से नया Python इंस्टॉल करें।
Install a JavaScript engine (Deno)JavaScript इंजन (Deno) इंस्टॉल करें
YouTube needs one. Deno is the one yt-dlp recommends. This is the official installer line from docs.deno.com:YouTube को इसकी ज़रूरत है। yt-dlp Deno को ही सुझाता है। यह docs.deno.com की आधिकारिक इंस्टॉलर लाइन है:
curl -fsSL https://deno.land/install.sh | shAlternative: Node.js 22 with nvm (use this instead of Deno if you prefer)विकल्प: nvm से Node.js 22 (चाहें तो Deno की जगह यह इस्तेमाल करें)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash nvm install 22If the installer asks questions, answer yes (y). Then close the terminal and open a new one, and check with “deno --version” (it must be 2.3 or higher) or “node --version” (22 or higher).इंस्टॉलर सवाल पूछे तो हाँ (y) कहें। फिर टर्मिनल बंद करके नया खोलें और “deno --version” (2.3 या ऊपर) या “node --version” (22 या ऊपर) से जाँचें।
Get the appऐप का कोड लें
cd ~ git clone https://github.com/Abhishek862009/yt-saver.git cd yt-saverSet it up (first time only)सेटअप करें (सिर्फ़ पहली बार)
python3 -m venv .venv .venv/bin/python -m pip install -r requirements.txtThis downloads the libraries the app needs. Wait until the prompt comes back.यह ऐप की ज़रूरी लाइब्रेरी डाउनलोड करता है। प्रॉम्प्ट वापस आने तक रुकें।
Start the appऐप चालू करें
.venv/bin/python app.pyWhen the window shows “YT Saver is running”, open http://127.0.0.1:5000 in your browser (on the same device). Keep the window open while you use the app.जब विंडो में “YT Saver is running” दिखे, तो उसी डिवाइस के ब्राउज़र में http://127.0.0.1:5000 खोलें। ऐप इस्तेमाल करते समय यह विंडो खुली रहने दें।
Next timeअगली बार
cd ~/yt-saver .venv/bin/python app.pyTo stop the app, click the terminal and press Ctrl+C.ऐप बंद करने के लिए टर्मिनल पर क्लिक करके Ctrl+C दबाएँ।
If something goes wrongकुछ गड़बड़ हो तो
“ensurepip is not available” or “python3-venv” when creating the environmentवातावरण बनाते समय “ensurepip is not available” या “python3-venv”
On Ubuntu / Debian install the missing package, then run the “python3 -m venv .venv” line again:Ubuntu / Debian पर छूटा हुआ पैकेज इंस्टॉल करें, फिर “python3 -m venv .venv” वाली लाइन दोबारा चलाएँ:
sudo apt install -y python3-venv“deno: command not found” after installing itइंस्टॉल के बाद “deno: command not found”
Open a new terminal. If it still fails, add Deno to the path for this terminal:नया टर्मिनल खोलें। फिर भी न चले, तो इस टर्मिनल के लिए Deno का path जोड़ें:
export PATH="$HOME/.deno/bin:$PATH"The app says port 5000 is already in useऐप कहता है कि port 5000 पहले से इस्तेमाल में है
Start it on another port, then open that port in the browser (here 5001):इसे दूसरे port पर चालू करें और ब्राउज़र में वही port खोलें (यहाँ 5001):
PORT=5001 .venv/bin/python app.py
How to updateअपडेट कैसे करें
YouTube changes often, so an old copy of the app can stop saving videos, and new versions of the app add improvements. Updating takes about a minute: it gets the newest version of the app and of its libraries. The files you already saved stay where they are.YouTube अक्सर बदलता रहता है, इसलिए ऐप की पुरानी कॉपी वीडियो सेव करना बंद कर सकती है, और ऐप के नए वर्शन में सुधार आते रहते हैं। अपडेट में लगभग एक मिनट लगता है: यह ऐप और उसकी लाइब्रेरी का नया वर्शन ले आता है। जो फ़ाइलें आप पहले सेव कर चुके हैं, वे वहीं रहती हैं।
Stop the appऐप को रोकें
If the app is running, click its terminal and press Ctrl+C. The prompt comes back when it has stopped. If the app is not running, skip this step.अगर ऐप चल रहा है, तो उसके टर्मिनल पर क्लिक करके Ctrl+C दबाएँ। रुकने पर प्रॉम्प्ट वापस आ जाता है। ऐप चल नहीं रहा हो, तो यह स्टेप छोड़ दें।
Go to the app folder and get the newest versionऐप के फ़ोल्डर में जाएँ और नया वर्शन लें
git pull downloads the newest version of the app from GitHub into the folder you already have.git pull GitHub से ऐप का नया वर्शन आपके पहले से मौजूद फ़ोल्डर में उतार देता है।
cd ~/yt-saver git pullIf it says “Already up to date.”, you already have the newest version. Otherwise it lists the files that changed.अगर “Already up to date.” दिखे, तो आपके पास नया वर्शन पहले से है। नहीं तो यह बदली हुई फ़ाइलों की लिस्ट दिखाता है।
Update the librariesलाइब्रेरी अपडेट करें
.venv/bin/python -m pip install -U -r requirements.txtIt may print “Requirement already satisfied”. That is fine. Wait until the prompt comes back.यह “Requirement already satisfied” छाप सकता है। यह ठीक है। प्रॉम्प्ट वापस आने तक रुकें।
Start the app againऐप दोबारा चालू करें
.venv/bin/python app.pyOpen http://127.0.0.1:5000 in your browser and reload the page, so the browser loads the new version.अपने ब्राउज़र में http://127.0.0.1:5000 खोलें और पेज रीलोड करें, ताकि ब्राउज़र नया वर्शन ले।
If the update failsअपडेट न हो तो
git says “fatal: not a git repository”git कहता है “fatal: not a git repository”
This folder was not made with git clone (for example the app was downloaded as a ZIP file), so it cannot update itself. Do the “Get the app” and “Set it up” steps of the setup guide above once more, then start the app from the new folder.यह फ़ोल्डर git clone से नहीं बना (जैसे ऐप ZIP फ़ाइल के रूप में डाउनलोड किया गया), इसलिए यह खुद को अपडेट नहीं कर सकता। ऊपर की सेटअप गाइड के “ऐप का कोड लें” और “सेटअप करें” स्टेप्स एक बार फिर करें, फिर ऐप नए फ़ोल्डर से चालू करें।
git pull says “Your local changes to the following files would be overwritten”git pull कहता है “Your local changes to the following files would be overwritten”
You changed a file inside the app folder. Put your change aside, then pull again:आपने ऐप के फ़ोल्डर में कोई फ़ाइल बदली है। अपना बदलाव एक तरफ़ रख दें, फिर दोबारा pull करें:
git stash git pull
Mac (macOS)Mac (macOS)
Uses Terminal and Homebrew, the standard way to install programs on a Mac.Terminal और Homebrew इस्तेमाल होता है, जो Mac पर प्रोग्राम इंस्टॉल करने का आम तरीका है।
ℹ Written from the official Homebrew documentation and package pages. The author has not run these steps on a Mac yet. If one fails, see “If something goes wrong” below.यह Homebrew के आधिकारिक दस्तावेज़ों और पैकेज पेजों से लिखा गया है। लेखक ने ये स्टेप्स अभी Mac पर चलाकर नहीं देखे हैं। कोई स्टेप फेल हो तो नीचे “कुछ गड़बड़ हो तो” देखें।
Open TerminalTerminal खोलें
Press Command+Space, type Terminal and press Enter.Command+Space दबाएँ, Terminal लिखें और Enter दबाएँ।
Install Homebrew (if you do not have it)Homebrew इंस्टॉल करें (अगर नहीं है)
First check whether you already have it. If it prints a version number, skip the second line.पहले जाँचें कि कहीं पहले से तो नहीं है। अगर वर्शन नंबर दिखे, तो दूसरी लाइन छोड़ दें।
brew --version /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"The second line is the official installer from brew.sh. It explains what it will do and asks for your Mac password. When it finishes it prints “Next steps”: copy and run those lines too, so that the brew command works.दूसरी लाइन brew.sh का आधिकारिक इंस्टॉलर है। यह बताता है कि क्या करेगा और आपका Mac पासवर्ड माँगता है। खत्म होने पर यह “Next steps” छापता है: वे लाइनें भी कॉपी करके चलाएँ, ताकि brew कमांड काम करे।
Install Git, Python, ffmpeg and Node.jsGit, Python, ffmpeg और Node.js इंस्टॉल करें
brew install git [email protected] ffmpeg nodeGet the appऐप का कोड लें
cd ~ git clone https://github.com/Abhishek862009/yt-saver.git cd yt-saverSet it up (first time only)सेटअप करें (सिर्फ़ पहली बार)
python3.13 -m venv .venv .venv/bin/python -m pip install -r requirements.txtThis downloads the libraries the app needs. Wait until the prompt comes back.यह ऐप की ज़रूरी लाइब्रेरी डाउनलोड करता है। प्रॉम्प्ट वापस आने तक रुकें।
Start the appऐप चालू करें
.venv/bin/python app.pyWhen the window shows “YT Saver is running”, open http://127.0.0.1:5000 in your browser (on the same device). Keep the window open while you use the app.जब विंडो में “YT Saver is running” दिखे, तो उसी डिवाइस के ब्राउज़र में http://127.0.0.1:5000 खोलें। ऐप इस्तेमाल करते समय यह विंडो खुली रहने दें।
Next timeअगली बार
cd ~/yt-saver .venv/bin/python app.pyTo stop the app, click the Terminal window and press Control+C.ऐप बंद करने के लिए Terminal विंडो पर क्लिक करके Control+C दबाएँ।
If something goes wrongकुछ गड़बड़ हो तो
“brew: command not found” right after installing HomebrewHomebrew इंस्टॉल करने के ठीक बाद “brew: command not found”
Run the “Next steps” lines that the Homebrew installer printed at the end, then open a new Terminal window.Homebrew इंस्टॉलर ने अंत में जो “Next steps” लाइनें छापी थीं, उन्हें चलाएँ और फिर नई Terminal विंडो खोलें।
“python3.13: command not found”“python3.13: command not found”
Open a new Terminal window and try again. If it still fails, run the install line again:नई Terminal विंडो खोलकर फिर कोशिश करें। फिर भी न चले, तो इंस्टॉल वाली लाइन दोबारा चलाएँ:
brew install [email protected]The app says port 5000 is already in useऐप कहता है कि port 5000 पहले से इस्तेमाल में है
Start it on another port, then open that port in the browser (here 5001):इसे दूसरे port पर चालू करें और ब्राउज़र में वही port खोलें (यहाँ 5001):
PORT=5001 .venv/bin/python app.py
How to updateअपडेट कैसे करें
YouTube changes often, so an old copy of the app can stop saving videos, and new versions of the app add improvements. Updating takes about a minute: it gets the newest version of the app and of its libraries. The files you already saved stay where they are.YouTube अक्सर बदलता रहता है, इसलिए ऐप की पुरानी कॉपी वीडियो सेव करना बंद कर सकती है, और ऐप के नए वर्शन में सुधार आते रहते हैं। अपडेट में लगभग एक मिनट लगता है: यह ऐप और उसकी लाइब्रेरी का नया वर्शन ले आता है। जो फ़ाइलें आप पहले सेव कर चुके हैं, वे वहीं रहती हैं।
Stop the appऐप को रोकें
If the app is running, click its Terminal window and press Control+C. The prompt comes back when it has stopped. If the app is not running, skip this step.अगर ऐप चल रहा है, तो उसकी Terminal विंडो पर क्लिक करके Control+C दबाएँ। रुकने पर प्रॉम्प्ट वापस आ जाता है। ऐप चल नहीं रहा हो, तो यह स्टेप छोड़ दें।
Go to the app folder and get the newest versionऐप के फ़ोल्डर में जाएँ और नया वर्शन लें
git pull downloads the newest version of the app from GitHub into the folder you already have.git pull GitHub से ऐप का नया वर्शन आपके पहले से मौजूद फ़ोल्डर में उतार देता है।
cd ~/yt-saver git pullIf it says “Already up to date.”, you already have the newest version. Otherwise it lists the files that changed.अगर “Already up to date.” दिखे, तो आपके पास नया वर्शन पहले से है। नहीं तो यह बदली हुई फ़ाइलों की लिस्ट दिखाता है।
Update the librariesलाइब्रेरी अपडेट करें
.venv/bin/python -m pip install -U -r requirements.txtIt may print “Requirement already satisfied”. That is fine. Wait until the prompt comes back.यह “Requirement already satisfied” छाप सकता है। यह ठीक है। प्रॉम्प्ट वापस आने तक रुकें।
Start the app againऐप दोबारा चालू करें
.venv/bin/python app.pyOpen http://127.0.0.1:5000 in your browser and reload the page, so the browser loads the new version.अपने ब्राउज़र में http://127.0.0.1:5000 खोलें और पेज रीलोड करें, ताकि ब्राउज़र नया वर्शन ले।
If the update failsअपडेट न हो तो
git says “fatal: not a git repository”git कहता है “fatal: not a git repository”
This folder was not made with git clone (for example the app was downloaded as a ZIP file), so it cannot update itself. Do the “Get the app” and “Set it up” steps of the setup guide above once more, then start the app from the new folder.यह फ़ोल्डर git clone से नहीं बना (जैसे ऐप ZIP फ़ाइल के रूप में डाउनलोड किया गया), इसलिए यह खुद को अपडेट नहीं कर सकता। ऊपर की सेटअप गाइड के “ऐप का कोड लें” और “सेटअप करें” स्टेप्स एक बार फिर करें, फिर ऐप नए फ़ोल्डर से चालू करें।
git pull says “Your local changes to the following files would be overwritten”git pull कहता है “Your local changes to the following files would be overwritten”
You changed a file inside the app folder. Put your change aside, then pull again:आपने ऐप के फ़ोल्डर में कोई फ़ाइल बदली है। अपना बदलाव एक तरफ़ रख दें, फिर दोबारा pull करें:
git stash git pull
Using the appऐप कैसे इस्तेमाल करें
- Open http://127.0.0.1:5000 in your browser.अपने ब्राउज़र में http://127.0.0.1:5000 खोलें।
- Paste a YouTube video link and press “Find qualities”.YouTube वीडियो का लिंक पेस्ट करें और “Find qualities” दबाएँ।
- Pick a quality from the list (highest first) and press “Save video”.लिस्ट से क्वालिटी चुनें (सबसे ऊँची पहले) और “Save video” दबाएँ।
- When it reaches 100%, the file is saved to your browser’s Downloads folder.100% होने पर फ़ाइल आपके ब्राउज़र के Downloads फ़ोल्डर में सेव हो जाती है।
Good to knowध्यान रखें
- Only save videos you own, that are licensed for reuse, or that you have permission to download. Downloading other people’s videos may break YouTube’s Terms of Service or copyright law.सिर्फ़ वही वीडियो सेव करें जो आपके हों, दोबारा इस्तेमाल के लिए लाइसेंस वाले हों, या जिन्हें डाउनलोड करने की आपके पास अनुमति हो। दूसरों के वीडियो डाउनलोड करना YouTube की सेवा-शर्तों या कॉपीराइट कानून का उल्लंघन हो सकता है।
- If YouTube says it needs proof you are not a bot, wait a few minutes and try again, or switch network (for example your phone’s hotspot instead of shared Wi-Fi). Shared hostel or college Wi-Fi is more likely to be limited.अगर YouTube कहे कि आपको बॉट न होने का सबूत देना होगा, तो कुछ मिनट रुककर फिर कोशिश करें, या नेटवर्क बदलें (जैसे साझा Wi-Fi की जगह फ़ोन का हॉटस्पॉट)। हॉस्टल या कॉलेज का साझा Wi-Fi सीमित होने की संभावना ज़्यादा रखता है।
- Nothing about your downloads goes through arvish.xyz. You get the app’s code from GitHub once; after that the app talks to YouTube directly from your device.आपके डाउनलोड का कुछ भी arvish.xyz से होकर नहीं जाता। आप ऐप का कोड एक बार GitHub से लेते हैं; उसके बाद ऐप आपके डिवाइस से सीधे YouTube से बात करता है।
- The app is open source. The code is in its own repository on GitHub: Abhishek862009/yt-saver.ऐप ओपन सोर्स है। कोड GitHub पर अपनी अलग रिपॉज़िटरी में है: Abhishek862009/yt-saver।
Use it fairlyइसे ज़िम्मेदारी से इस्तेमाल करें
Only save videos you own, that are licensed for reuse, or that you have permission to download. Downloading other people's videos may break YouTube's Terms of Service or copyright law. The app can stop working when YouTube changes; updating it usually fixes that.सिर्फ़ वही वीडियो सेव करें जो आपके हों, दोबारा इस्तेमाल के लिए लाइसेंस वाले हों, या जिन्हें डाउनलोड करने की आपके पास अनुमति हो। दूसरों के वीडियो डाउनलोड करना YouTube की सेवा-शर्तों या कॉपीराइट कानून का उल्लंघन हो सकता है। YouTube में बदलाव होने पर ऐप चलना बंद हो सकता है; इसे अपडेट करने से आम तौर पर ठीक हो जाता है।
Part of the Arvish App Store (Abhishek App Store) by Abhishek.Arvish App Store (Abhishek App Store) का हिस्सा, Abhishek द्वारा।