first commit

This commit is contained in:
2026-04-09 15:51:02 +02:00
parent a5b32ca5f1
commit 20e915328b
8 changed files with 191 additions and 34 deletions

View File

@@ -1,17 +1,19 @@
pkgbase = open-video-downloader-appimage pkgbase = open-video-downloader-appimage
pkgdesc = A cross-platform GUI for youtube-dl made in Electron and node.js pkgdesc = A cross-platform GUI for youtube-dl made in Rust with Tauri and Vue + Typescript
pkgver = 2.4.10 pkgver = 3.2.0
pkgrel = 3 pkgrel = 1
url = https://github.com/StefanLobbenmeier/youtube-dl-gui url = https://github.com/jely2002/youtube-dl-gui
arch = x86_64 arch = x86_64
license = AGPL3 license = AGPL3
depends = zlib provides = open-video-downloader
depends = glibc
depends = python-mutagen
conflicts = open-video-downloader conflicts = open-video-downloader
conflicts = youtube-dl-gui
options = !strip options = !strip
source = open-video-downloader-2.4.10.AppImage::https://github.com/StefanLobbenmeier/youtube-dl-gui/releases/download/v2.4.10/Open-Video-Downloader-2.4.10.AppImage options = !debug
sha256sums = e99cf7780eebbe74a1e45cbac822f965c7e7299193adce39b37240d75d8e2389 source = open-video-downloader-3.2.0.AppImage::https://github.com/jely2002/youtube-dl-gui/releases/download/app-v3.2.0/Open.Video.Downloader_3.2.0_amd64.AppImage
source = open-video-downloader.desktop
source = open-video-downloader.png
sha256sums = dffee4cfef50e8edb9be4136d5650b123e49b8a1ffd959ff3d2c42502fc391e3
sha256sums = 217d02211a51853d920e53558cd9cbd7a753ba9f2036ddaa0ec4e00a77351b6c
sha256sums = 188992cbe106d0dd6e7b9c219020118a1246c3657c828f86e463617c3d6214cb
pkgname = open-video-downloader-appimage pkgname = open-video-downloader-appimage

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# AppImages
*.AppImage
# built packages
*.pkg.tar.zst

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Bryan Joshua Pedini
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,27 +1,41 @@
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com> # Maintainer: Bryan Joshua Pedini <bryan [at] pedini [dot] dev>
pkgname="open-video-downloader-appimage"
pkgver=2.4.10 _pkgname="open-video-downloader"
pkgrel=3 _srcname="youtube-dl-gui"
pkgdesc="A cross-platform GUI for youtube-dl made in Electron and node.js" _srcmntr="jely2002"
arch=('x86_64')
url="https://github.com/StefanLobbenmeier/youtube-dl-gui" pkgname="${_pkgname}-appimage"
license=('AGPL3') pkgver="3.2.0"
conflicts=("${pkgname%-appimage}" "youtube-dl-gui") pkgrel="1"
depends=('zlib' 'glibc' 'python-mutagen') pkgdesc="A cross-platform GUI for youtube-dl made in Rust with Tauri and Vue + Typescript"
options=('!strip') url="https://github.com/${_srcmntr}/${_srcname}"
_install_path="/opt/appimages" arch=("x86_64")
source=("${pkgname%-appimage}-${pkgver}.AppImage::${url}/releases/download/v${pkgver}/Open-Video-Downloader-${pkgver}.AppImage") license=("AGPL3")
sha256sums=('e99cf7780eebbe74a1e45cbac822f965c7e7299193adce39b37240d75d8e2389') options=("!strip" "!debug")
_archive="${_pkgname}-${pkgver}.AppImage"
source=(
"${_archive}::https://github.com/${_srcmntr}/${_srcname}/releases/download/app-v${pkgver}/Open.Video.Downloader_${pkgver}_amd64.AppImage"
"${_pkgname}.desktop"
"${_pkgname}.png"
)
conflicts=("open-video-downloader")
provides=("open-video-downloader")
sha256sums=(
"dffee4cfef50e8edb9be4136d5650b123e49b8a1ffd959ff3d2c42502fc391e3"
"217d02211a51853d920e53558cd9cbd7a753ba9f2036ddaa0ec4e00a77351b6c"
"188992cbe106d0dd6e7b9c219020118a1246c3657c828f86e463617c3d6214cb"
)
prepare() { prepare() {
chmod a+x "${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" sed -i -e '/^X-AppImage-/d' "${srcdir}/${_pkgname}.desktop"
"${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" --appimage-extract > /dev/null
sed "s|AppRun|${_install_path}/${pkgname%-appimage}.AppImage|g;s|youtube-dl-gui|${pkgname%-appimage}|g;s|X-utility|Utility|g" \
-i "${srcdir}/squashfs-root/${pkgname%-appimage}.desktop"
} }
package() { package() {
install -Dm755 "${srcdir}/${pkgname%-appimage}-${pkgver}.AppImage" "${pkgdir}/${_install_path}/${pkgname%-appimage}.AppImage" install -Dm755 "${srcdir}/${_archive}" \
install -Dm644 "${srcdir}/squashfs-root/usr/share/icons/hicolor/0x0/apps/${pkgname%-appimage}.png" -t "${pkgdir}/usr/share/pixmaps" "${pkgdir}/usr/bin/${_pkgname}"
install -Dm644 "${srcdir}/squashfs-root/${pkgname%-appimage}.desktop" -t "${pkgdir}/usr/share/applications" install -Dm644 "$srcdir/${_pkgname}.desktop" \
"$pkgdir/usr/share/applications/${_pkgname}.desktop"
install -Dm644 "$srcdir/${_pkgname}.png" \
"$pkgdir/usr/share/icons/hicolor/256x256/apps/${_pkgname}.png"
} }

2
README.md Normal file
View File

@@ -0,0 +1,2 @@
# open-video-downloader-appimage
PKGBUILD script for Arch Linux for `open-video-downloader-appimage` package

View File

@@ -0,0 +1,13 @@
[Desktop Entry]
Categories=
Comment=Download videos from all over the web.
Exec=open-video-downloader
StartupWMClass=open-video-downloader
Icon=open-video-downloader
Name=Open Video Downloader
Terminal=false
Type=Application
X-AppImage-Name=Open_Video_Downloader
X-AppImage-Version=UNKNOWN
X-AppImage-Arch=x86_64

BIN
open-video-downloader.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

101
push.sh Executable file
View File

@@ -0,0 +1,101 @@
#!/usr/bin/env bash
# Variables
gui=true
desktop="Open Video Downloader.desktop"
icon="open-video-downloader.png"
# Get version
oldver=$(grep -E "^pkgver=" PKGBUILD | sed 's/pkgver="//;s/"//')
if [ $# -eq 1 ]; then
pkgver="${1}"
else
echo "Old version: ${oldver}"
read -p "New version: " pkgver
fi
# Check version
if [ "${pkgver}" = "${oldver}" ] && [ -z "${FORCE_REBUILD}" ]; then
echo >/dev/stderr "Error: same (old) version specified - update aborted"
exit 1
fi
# Get variables from PKGBUILD
url=$(sed -n '/^source=(/,/)/p' PKGBUILD | grep -oE 'https?://[^"]+')
pkgname=$(grep -E "^pkgname=" PKGBUILD | sed 's/pkgname="//;s/"//')
_pkgname=$(grep -E "^_pkgname=" PKGBUILD | sed 's/_pkgname="//;s/"//')
_srcname=$(grep -E "^_srcname=" PKGBUILD | sed 's/_srcname="//;s/"//')
_srcmntr=$(grep -E "^_srcmntr=" PKGBUILD | sed 's/_srcmntr="//;s/"//')
_archive=$(grep -E "^_archive=" PKGBUILD | sed 's/_archive="//;s/"//')
pkgrel=$(grep -E "^pkgrel=" PKGBUILD | sed 's/pkgrel="//;s/"//')
aur_url="ssh://aur@aur.archlinux.org/${pkgname}.git"
if [ "${gui}" = "true" ] && [ -n "${_pkgname}" ]; then
newdesktop="${_pkgname}.desktop"
newicon="${_pkgname}.png"
else
newdesktop="${package}.desktop"
newicon="${package}.png"
fi
# Perform variable substitution
url="${url//\$\{pkgname\}/$pkgname}"
url="${url//\$\{_pkgname\}/$_pkgname}"
url="${url//\$\{_srcname\}/$_srcname}"
url="${url//\$\{_srcmntr\}/$_srcmntr}"
url="${url//\$\{pkgver\}/$pkgver}"
_archive="${_archive//\$\{pkgname\}/$pkgname}"
_archive="${_archive//\$\{_pkgname\}/$_pkgname}"
_archive="${_archive//\$\{pkgver\}/$pkgver}"
aur_url="${aur_url//\$\{_pkgname\}/$_pkgname}"
# Download archive
wget -O ${_archive} "${url}"
# Extract icon / .desktop files if appimage
if printf '%s' "${_archive,,}" | grep -qi "appimage"; then
chmod +x "${_archive}"
"./${_archive}" --appimage-extract
cp "squashfs-root/${desktop}" "${newdesktop}"
cp "squashfs-root/${icon}" "${newicon}"
if [ -L "squashfs-root" ]; then
rm -rf $(readlink -f squashfs-root) squashfs-root
fi
fi
# Calculate checksums
sha256bin=$(sha256sum ${_archive} | awk '{print $1}')
if [ "${gui}" = "true" ]; then
sha256dsk=$(sha256sum ${newdesktop} | awk '{print $1}')
sha256ico=$(sha256sum ${newicon} | awk '{print $1}')
fi
# Yoink the archive - unnecessary anymore
rm -f ${_archive}
# Update PKGBUILD with new values
sed -i -E "s/^pkgver=\"[^\"]+\"/pkgver=\"$pkgver\"/" PKGBUILD
if [ "${gui}" = "true" ]; then
sed -i '/^sha256sums=(/,/^)/c\
sha256sums=(\
"'"$sha256bin"'"\
"'"$sha256dsk"'"\
"'"$sha256ico"'"\
)' PKGBUILD
else
sed -i -E "s/^sha256sums=\(\"[^\"]+\"\)/sha256sums=(\"$sha256bin\")/" PKGBUILD
fi
# Update .SRCINFO
makepkg --printsrcinfo > .SRCINFO
# Create git message with correct variable
if [ -n "$_pkgname" ]; then
commit_msg="Updated ${pkgname//\$\{_pkgname\}/_pkgname} to ${pkgver}-${pkgrel}"
else
commit_msg="Updated ${pkgname} to ${pkgver}-${pkgrel}"
fi
if [ -z "${NO_GIT_PUSH}" ]; then
# In case of fire, git commit, git push, leave building
git add .
git commit -m "Updated ${pkgname} to ${pkgver}-${pkgrel}"
git remote add aur ${aur_url}
git push origin main
git push aur main:master
fi