Skip to content

odrevet/yt-dlp-kivy

Repository files navigation

User interface for yt-dlp using the Kivy framework

Usage

  • Past or enter video URL to download in the text field.
  • Click on the 'Download' button

Prerequists

  • Kivy (run)
  • Buildozer (build for android)
pip install -r requirements.txt

Build using official buildozer Dockerfile

  • Build the image
git clone https://github.com/kivy/buildozer.git
cd buildozer
docker build --tag=kivy/buildozer .
  • Run
docker run \
  --volume "$HOME/.buildozer":/home/user/.buildozer \
  --volume "$PWD":/home/user/hostcwd \
  --volume "$HOME/.gradle":/home/user/.gradle \
  --entrypoint /bin/bash \
  kivy/buildozer \
  -c "bash utils.sh --build"

Utils

Must be run using bash

In case of errors, exported shell variables at the beggining of the script may be adujsted.

  • To build the apk: --build. Android SDK will be downloaded at first run.

  • To sign the apk: --sign. Keystore (--key or -k) and pass (--pass or -p ) may be passed after this argument. defaults to included test keystore and pass

bash utils.sh --sign --key mykeystore.keystore --pass 123456
  • To install the apk: --install.

Example:

bash utils.sh --build --sign --install

troubleshooting

  • When build, if requested API cannot be found then the buildozer directory must be cleared
rm -rf .buildozer
  • logcat
adb logcat --pid=$(adb shell pidof fr.odrevet.youtube_dl_kivy) | grep -E "(ERROR|python|File|line)"
  • access filesytem
buildozer android debug
adb install bin/youtube_dl_kivy-0.5.0-arm64-v8a-debug.apk
adb shell
run-as fr.odrevet.youtube_dl_kivy
cd /data/data/fr.odrevet.youtube_dl_kivy/files/app

CI testing with act

Create env file with dummy keystore

cat > .env.act << EOF
GITHUB_TOKEN=dummy_token_for_testing
KEYSTORE_BASE64=$(base64 -w 0 mykeystore.keystore)
KEYSTORE_PASSPHRASE=123456
EOF

Run

  • check syntax
act workflow_dispatch --dry-run
  • with verbose output
act workflow_dispatch --env-file .env.act --verbose

Sources