Scripts to build binary packages to run youtube-dl (with FFmpeg) on Android, with Python and just the required dependencies. These scripts use the termux build system to build the entire required packages and then the unnecessary packages and the files are trimmed off to get just the required minimal build. The list of required packages to run youtube-dl
are in the file required-packages.txt
, which is used by the script to trim off unnecessary packages for our build.
Note: These packages work only for Android 5 (Lollipop) and above.
Once, the above requirements are met, make sure you've an internet connection and the docker service is running in your system. Remove any previous termux/package-builder
container, if you have already in your docker (if you were using the termux build system previously).
Other than all the above, you're good to go. Just start the build by running the script autobuild.sh
, the script will do the rest and create a build for each of the Android ABIs and place the respective packages in the same directory.
./autobuild.sh
However, if you don't want to use autobuild.sh
or you just want to build just for a single architecture, then it can be achieved using the following steps.
First, clone the termux build system repository
git clone "https://github.com/termux/termux-packages"
Download the latest youtube-dl script
curl -L "https://yt-dl.org/downloads/latest/youtube-dl" -o "youtube-dl"
Copy the required scripts into termux-packages
cp -v build-youtubedl.sh required-packages.txt youtube-dl.sh youtube-dl termux-packages
Make sure the docker service is running and switch to termux docker container
cd termux-packages && ./scripts/run-docker.sh
Create a build directory and change into it
mkdir -v build
Run build-youtubedl.sh
to start building the entire required packages, change the value of ARCH variable to the android architecture (x86_64
, i686
, arm
, aarch64
) for which you want to build the packages. For, armeabi-v7a
ARCH=arm, and for arm64-v8a
ARCH=aarch64, and for x86
ARCH=i686 and for x86_64
ARCH=x86_64
ARCH=arm ../build-youtubedl.sh build
Similarly, extract the required packages
ARCH=arm ../build-youtubedl.sh extract
And the same way, build the packages
ARCH=arm ../build-youtubedl.sh package
If you need to clean the current build
directory and the build environment
ARCH=arm ../build-youtubedl.sh clean
Exit from the termux build system
exit
Finally, you have a compressed tarball package for running youtube-dl on android, you may copy it out to the main directory.
cp -v youtubedl-arm.tar.xz ..
Extracting the tarball and running youtube-dl on an android system is easy and can be done with the help of busybox tar applet.
Assuming, we've copied busybox and the package into our android system at /data/local/tmp
we can run youtube-dl as follows,
cd /data/local/tmp
chmod 755 busybox
mkdir test
cd test
../busybox tar -xf ../youtubedl-arm.tar.xz
./usr/bin/youtube-dl "https://www.youtube.com/watch?v=aqz-KE-bpKQ"
- youtubedl-android guide for giving an overall insight of how it's done
- Termux Wiki for providing a detailed guide on how to build packages using the termux build system
The scripts are under under GPLv3