makedeb


yt-dlp-git 2024.04.09.r26.ac817bc-1


Downloader of videos from YouTube and many other sites (git)

Viewing /PKGBUILD.

View raw.

Click here to go back to the Git tree for yt-dlp-git.

# Maintainer: exponential <echo ZXhwb25lbnRpYWxtYXRyaXhAcHJvdG9ubWFpbC5jb20K | base64 -d>
# Contributor: katt (AUR) <magunasu.b97@gmail.com>

pkgname=yt-dlp-git
_pkgname="${pkgname%-git}"
pkgver=2024.04.09.r26.ac817bc
pkgrel=1
pkgdesc='Downloader of videos from YouTube and many other sites (git)'
arch=(all)
url=https://github.com/yt-dlp/yt-dlp
license=(Unlicense)
depends=('python3' 'python3-certifi' 'python3-requests' 'python3-urllib3')
# missing makedependency python3-editables
# https://packages.debian.org/sid/all/python3-editables/download
makedepends=('pandoc' 'python3-build' 'python3-editables' 'python3-hatchling' 'python3-installer' 'git')
# slow and fails
checkdepends=(python3-pytest)
#optcheckdepends=('python3-requests' 'python3-websockets')
optdepends=('ffmpeg: for video post-processing'
            'rtmpdump: for rtmp streams support'
            'atomicparsley: for embedding thumbnails into m4a files'
            'aria2: for using aria2 as external downloader'
            'wget: external downloader (alternative)'
            'curl: external downloader (alternative)'
            'ca-certificates: SSL cerificates'
            'libfribidi-bin: for bidirectional scripts'
            'bidiv: for bidirectional scripts (alternative)'
            'python3-mutagen: for embedding thumbnail in certain formats'
            'python3-pycryptodome-fix: fix packaging bug in debian'
            'python3-pycryptodome: for decrypting AES-128 HLS streams and various other data'
#            'python3-pycryptodomex: for decrypting AES-128 HLS streams and various other data (alternative)'
            'python3-websockets: for downloading over websocket'
            'python3-brotli: brotli content encoding support'
            'python3-brotlicffi: brotli content encoding support'
            'python3-xattr: for writing xattr metadata'
            'python3-pyxattr: for writing xattr metadata (alternative)'
            'phantomjs: for extractors with javascript code'
            'python3-secretstorage: For -cookies-from-browser to access the GNOME keyring while decrypting cookies of Chromium-based browsers')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
source=(git+"${url}".git)
sha256sums=('SKIP')

pkgver() {
     cd "$srcdir/${_pkgname}"
     printf "%s.r%s.%s" "$(grep __version__ "yt_dlp/version.py" | cut -d \' -f 2 )" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
    # Clean out old wheels etc.
    git -C "${_pkgname}" clean -dfx

    cd "$srcdir/${_pkgname}"
    # Debianize folders
    sed -i 's!share/zsh/site-functions/_yt-dlp!share/zsh/vendor-completions/_yt-dlp!' pyproject.toml
    sed -i 's!share/doc/yt_dlp/README.txt!share/doc/yt-dlp/README.txt!' pyproject.toml
    # don't have full git commit history
    sed -i 's!pypi-files: AUTHORS!pypi-files:!' Makefile
}

build() {
    cd "${_pkgname}"
    make pypi-files lazy-extractors
    python3 -m build --wheel --no-isolation
}

# slow and fails
check() {
    cd "${_pkgname}"
    # remove -Werror and "|| true" for strict test
    python3 -m pytest -v -Werror -m "not download" || true
}

package() {
    cd "${_pkgname}"
    python3 -m installer --destdir="$pkgdir" dist/*.whl #--optimize=1 --skip-build
    # Manual remove local
    mv "$pkgdir/usr/local/"* "$pkgdir/usr/"
    rmdir "$pkgdir/usr/local" 
    # doc
    install -Dm644 LICENSE "$pkgdir/usr/share/doc/${_pkgname}/"
    install -Dm644 Changelog.md "$pkgdir/usr/share/doc/${_pkgname}/changelog"
    install -Dm644 CONTRIBUTORS "$pkgdir/usr/share/doc/${_pkgname}/"
    gzip "$pkgdir/usr/share/doc/${_pkgname}/changelog"
}