Creating Youtube Downloader for iPad/iOS

by
, posted

I use my iPad Air M1 mainly for reading books, consuming RSS feed, watching Youtube & not so often for making hand written notes. When I’m carrying it away from home & don’t have access to Wifi I need to have content downloaded offline.

Books are my first choice regardless of Internet accessibility so I always have some books downloaded in iBooks app. I also keep certain course material loaded into iPad but if I want to switch between preferences I might watch Youtube Videos instead, such as insightful biographical briefings of the Pious Saints of Islam.

Normally, I download the YouTube videos on my Mac using yt-dlp and then Airdrop them onto my iPad for offline watching. This process is nearly frictionless for me since my Mac is my primary computing device. I could achieve that on my iPad if only there was an UNIX emulator app for iPad. Okay I found one:

Shell App

I came across this a-shell app lately which is a complete local terminal emulator, allowing to run most Unix commands on iPad / iOS devices. It has Python, Lua, JS, C, C++, TeX, sh and all Unix utilities installed by default making it an ideal app for CLI oriented workflow & our utility – yt-dlp.

Installing yt-dlp

For a-shell comes with both pip (package manager) and curl installed so we can install yt-dlp using two different methods. yt-dlp is the fork of youtube-dl which is a free & open source download manager utility for Youtube & over 1000 other video hosting websites.

You can install yt-dlp PyPI package with:

python3 -m pip install -U yt-dlp

With curl

If you want to install with curl run:

curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o yt-dlp

Downloading Video

Now that we have everything setup, we can start downloading our first Youtube video. Launch the a-shell and run the following command to download this Dopamine Detox video from Youtube.

yt-dlp -f mp4 https://www.youtube.com/watch?v=yvoxRMRRKmI&pp=ygUIYXBlcnR1cmU%3D -o "dopamine-detox.mp4"

If you installed the yt-dlp with curl then prefix the aforementioned command with python3. The video will be downloaded in the Files app in the section On My iPad > a-Shell.

To download a video in 1080p, you can use the following command:

yt-dlp -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' [video URL]

To download the best video with the best audio, you can use the following command:

yt-dlp -f bestvideo+bestaudio [video URL]

It will download the video in best quality possible.

Downloading Audio

I personally don’t download any YT video as audio for offline listening, but in case you want to here is how you can extract the audio from any YT video.

yt-dlp -f m4a https://www.youtube.com/watch?v=dRiLOA1Y2Q8 -o remove-the-darkness.m4a

Again, it’ll download and the audio be available on the iPad in the “a-Shell” folder as m4a, which is well supported format by iPad / iOS.

If you want to download as mp3 run:

yt-dlp -x --audio-format mp3 [video URL] -o file-name.mp3

To extract the best audio quality, you can use:

yt-dlp -x --audio-format mp3 --audio-quality 0 [video URL]

Replace [video URL] with the URL of the video you want to download the audio from. The –audio-quality 0 option tells yt-dlp to download the best audio quality available. This will ensure that you get the highest possible audio quality in your MP3 file.

Downloading Playlist

To download a playlist in mp4 format and 1080p resolution using yt-dlp, run:

yt-dlp -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' --merge-output-format mp4 [playlist URL]

If you want to extract the playlist as audio in mp3 format use the following command:

yt-dlp -x --audio-format mp3 [playlist URL]

Note

This is the easiest and cleanest way on the iPad to download YouTube videos in the desired format for offline use. Depending on your familiarity with yt-dlp, you can do much more with this setup than what has been explained here. Remember that yt-dlp supports over 1000 video hosting sites, so use this post as a starting point to further explore this command line utility.

Reply via mail

Your Signature