diff --git a/yt-dlp-rpmlintrc b/yt-dlp-rpmlintrc new file mode 100644 index 0000000..e573e55 --- /dev/null +++ b/yt-dlp-rpmlintrc @@ -0,0 +1 @@ +addFilter("files-duplicate") diff --git a/yt-dlp.changes b/yt-dlp.changes index d5fd290..12d638c 100644 --- a/yt-dlp.changes +++ b/yt-dlp.changes @@ -1,3 +1,294 @@ +------------------------------------------------------------------- +Sat Sep 27 06:53:33 UTC 2025 - Luigi Baldoni + +- Update to release 2025.09.26 + * twitch: vod: Fix live_status detection + * youtube: + + Fix player JS overrides + + Improve PO token logging + + Player client maintenance + + Replace tv_simply with web_safari in default clients +- Fix Leap 15.6 build + +------------------------------------------------------------------- +Tue Sep 23 08:02:51 UTC 2025 - Jan Engelhardt + +- Update to release 2025.09.23 + * youtube: Force player 0004de42 + +------------------------------------------------------------------- +Sat Sep 06 09:45:45 CEST 2025 - Luigi Baldoni + +- Update to version 2025.09.05 + * Fix --id deprecation warning + * charlierose: Fix extractor + * googledrive: Fix subtitles extraction + * itvbtcc: Fix extractor + * kick: vod: Support ongoing livestream VODs + * lrt: Fix extractors + * tver: Extract more metadata + * vevo: Restore extractors + * build: Overhaul Linux builds and refactor release workflow + +------------------------------------------------------------------- +Thu Aug 28 00:09:55 UTC 2025 - Jan Engelhardt + +- Update to release 2025.08.27 + * Add tcc player JS variant + * Deprioritize web_safari m3u8 formats + * Use alternative tv user-agent when authenticated + +------------------------------------------------------------------- +Sat Aug 23 07:56:19 UTC 2025 - Jan Engelhardt + +- Update to release 2025.08.22 + * cookies: Fix --cookies-from-browser with Firefox 142+ + +------------------------------------------------------------------- +Wed Aug 20 07:42:37 UTC 2025 - Jan Engelhardt + +- Update to release 2025.08.20 + * Warn against use of `-f mp4` + * yt: Add es5 and es6 player JS variants + * yt: Default to main player JS variant + * yt: Extract title and description from initial data + * yt: Handle required preroll waiting period + +------------------------------------------------------------------- +Mon Aug 11 07:18:23 UTC 2025 - Jan Engelhardt + +- Update to release 2025.08.11 + * yt: Add player params to mweb client + * dash: Re-extract if using --load-info-json with + --live-from-start + +------------------------------------------------------------------- +Tue Jul 22 00:13:54 UTC 2025 - Jan Engelhardt + +- Update to release 2025.07.21 + * Default behaviour changed from --mtime to --no-mtime + * yt: Do not require PO Token for premium accounts + * yt: Extract global nsig helper functions + * yt: tab: Fix subscriptions feed extraction + +------------------------------------------------------------------- +Tue Jul 1 15:00:04 UTC 2025 - Jan Engelhardt + +- Update to release 2025.06.30 + * youtube: Fix premium formats extraction + +------------------------------------------------------------------- +Thu Jun 26 07:58:44 UTC 2025 - Jan Engelhardt + +- Update to release 2025.06.25 + * yt: Check any ios m3u8 formats prior to download + * yt: Improve player context payloads + +------------------------------------------------------------------- +Tue Jun 10 00:19:26 UTC 2025 - Jan Engelhardt + +- Update to release 2025.06.09 + * adobepass: add Fubo MSO, fix Philo MSO authentication + * yt: Add tv_simply player client + * yt: Extract srt subtitles + * yt: Rework nsig function name extraction + +------------------------------------------------------------------- +Thu May 22 14:36:43 UTC 2025 - Jan Engelhardt + +- Update to release 2025.05.22 + * yt: Add PO token support for subtitles + * yt: Add web_embedded client for age-restricted videos + * yt: Add a PO Token Provider Framework + * yt: Extract media_type for all videos + * yt: Fix --live-from-start support for premieres + * yt: Fix geo-restriction error handling + +------------------------------------------------------------------- +Sun May 4 08:49:41 UTC 2025 - Jan Engelhardt + +- Update to release 2025.04.30 [boo#1242186] + * New option --preset-alias/-t has been added + +------------------------------------------------------------------- +Mon Mar 31 23:24:45 UTC 2025 - Jan Engelhardt + +- Update to release 2025.03.31 + * yt: add player_js_variant extractor-arg + * yt/tab: Fix playlist continuation extraction + +------------------------------------------------------------------- +Fri Mar 28 11:09:09 UTC 2025 - Jan Engelhardt + +- Update to release 2025.03.27 + * youtube: Make signature and nsig extraction more robust + +------------------------------------------------------------------- +Wed Mar 26 02:01:15 UTC 2025 - Jan Engelhardt + +- Update to release 2025.03.26 + * youtube: fix signature and nsig extraction for player 4fcd6e4a + +------------------------------------------------------------------- +Sat Mar 22 09:03:31 UTC 2025 - Jan Engelhardt + +- Update to release 2025.03.21 + * Fix external downloader availability when using + ``--ffmpeg-location`` + * youtube: fix nsig and signature extraction for player 643afba4. + +------------------------------------------------------------------- +Fri Feb 28 21:01:45 UTC 2025 - Jan Engelhardt + +- Require same version between yt-dlp -> python-yt-dlp + +------------------------------------------------------------------- +Wed Feb 19 08:55:03 UTC 2025 - Jan Engelhardt + +- Update to release 2025.02.19 + * NSIG workaround for tce player JS + +------------------------------------------------------------------- +Sun Jan 26 18:02:45 UTC 2025 - Jan Engelhardt + +- Update to release 2025.01.26 + * bilibili: Support space video list extraction without login + * crunchyroll: Remove extractors + * youtube: Download tv client Innertube config + * youtube: Use different PO token for GVS and Player + +------------------------------------------------------------------- +Thu Jan 16 21:28:51 UTC 2025 - Jan Engelhardt + +- Update to release 2025.01.15 + * youtube: Do not use web_creator as a default client + +------------------------------------------------------------------- +Mon Jan 13 00:14:20 UTC 2025 - Jan Engelhardt + +- Update to release 2025.01.12 + * yt: fix DASH formats incorrectly skipped in some situations + * yt: refactor cookie auth + +------------------------------------------------------------------- +Wed Dec 25 09:38:56 UTC 2024 - Luigi Baldoni + +- Fix 15.6 build + +------------------------------------------------------------------- +Tue Dec 24 01:26:36 UTC 2024 - Jan Engelhardt + +- Update to release 2024.12.23 + * yt: add age-gate workaround for some embeddable videos + +------------------------------------------------------------------- +Fri Dec 13 12:28:50 UTC 2024 - Jan Engelhardt + +- Update to release 2024.12.13 + * yt: fix signature function extraction for 2f1832d2 + * yt: prioritize original language over auto-dubbed audio + +------------------------------------------------------------------- +Thu Dec 12 12:50:03 UTC 2024 - Jan Engelhardt + +- Update to release 2024.12.06 + * yt: fix ``n`` sig extraction for player 3bb1f723 + * yt: fix signature function extraction + * yt: player client maintenance + +------------------------------------------------------------------- +Tue Dec 3 20:59:18 UTC 2024 - Jan Engelhardt + +- Update to release 2024.12.03 + * bilibili: Always try to extract HD formats + * youtube: Adjust player clients for site changes + +------------------------------------------------------------------- +Tue Nov 19 19:30:07 UTC 2024 - Jan Engelhardt + +- Update to release 2024.11.18 + * cloudflarestream: Avoid extraction via videodelivery.net + * youtube: remove broken OAuth support + +------------------------------------------------------------------- +Mon Nov 4 21:48:05 UTC 2024 - Jan Engelhardt + +- Update to release 2024.11.04 + * Prioritize AV1 + * Remove Python <= 3.8 support + * youtube: Adjust OAuth refresh token handling + +------------------------------------------------------------------- +Wed Oct 23 08:32:16 UTC 2024 - Jan Engelhardt + +- Update to release 2024.10.22 + * yt: Remove broken android_producer client + * yt: Remove broken age-restriction workaround + * yt: Support logging in with OAuth + +------------------------------------------------------------------- +Tue Oct 8 08:49:07 UTC 2024 - Jan Engelhardt + +- Update to release 2024.10.07 + * Fix cookie load error handling + * youtube: Change default player clients to ios,mweb + * patreon: Extract all m3u8 formats for locked posts + +------------------------------------------------------------------- +Sun Sep 29 19:34:07 UTC 2024 - Jan Engelhardt + +- Update to release 2024.09.27 + * Support excluding player_clients in extractor-arg + * clip: Prioritize https formats + +------------------------------------------------------------------- +Tue Aug 13 20:43:17 UTC 2024 - Jan Engelhardt + +- Update to release 2024.08.06 + * youtube: Fix `n` function name extraction for player `b12cc44b` + +------------------------------------------------------------------- +Tue Aug 13 18:34:37 UTC 2024 - Jan Engelhardt + +- Merge sh completion packages into main package +- Add yt-dlp-youtube-dl subpackage + +------------------------------------------------------------------- +Thu Aug 1 15:48:06 UTC 2024 - Jan Engelhardt + +- Update to release 2024.08.01 + * youtube: + * Change default player clients to ios,tv + * Fix n function name extraction for player 20dfca59 + * Fix age-verification workaround + +------------------------------------------------------------------- +Thu Jul 25 04:08:59 UTC 2024 - Jan Engelhardt + +- Update to release 2024.07.25 + * youtube: Fix n function name extraction for player 3400486c + +------------------------------------------------------------------- +Wed Jul 17 05:29:27 UTC 2024 - Jan Engelhardt + +- Update to release 2024.07.16 + * Support auto-tty and no_color-tty for --color + * youtube: Avoid poToken experiment player responses + +------------------------------------------------------------------- +Wed Jul 10 07:18:59 UTC 2024 - Jan Engelhardt + +- Update to release 2024.07.09 + * youtube: Remove broken n function extraction fallback + +------------------------------------------------------------------- +Tue Jul 2 10:30:24 UTC 2024 - Michael Vetter + +- Update to release 2024.07.01: + * Properly sanitize file-extension to prevent file system + modification and RCE. Unsafe extensions are now blocked from + being downloaded. [CVE-2024-38519 boo#1227305] + ------------------------------------------------------------------- Tue May 28 06:39:46 UTC 2024 - Jan Engelhardt diff --git a/yt-dlp.spec b/yt-dlp.spec index e1a7a90..4ece2dd 100644 --- a/yt-dlp.spec +++ b/yt-dlp.spec @@ -1,7 +1,7 @@ # # spec file for package yt-dlp # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,15 +19,20 @@ %define skip_python2 1 %define skip_python36 1 %define skip_python37 1 -%{?sle15_python_module_pythons} +%define skip_python38 1 +%if 0%{?suse_version} < 1600 +%global pythons python312 +%endif + Name: yt-dlp -Version: 2024.05.27 +Version: 2025.09.26 Release: 0 Summary: Enhanced fork of youtube-dl, a video site downloader for offline watching License: CC-BY-SA-3.0 AND SUSE-Public-Domain Group: Productivity/Networking/Web/Utilities URL: https://github.com/yt-dlp/yt-dlp Source: https://github.com/yt-dlp/yt-dlp/releases/download/%version/yt-dlp.tar.gz +Source9: yt-dlp-rpmlintrc BuildRequires: %{python_module hatchling} BuildRequires: %{python_module pip} BuildRequires: fdupes @@ -35,8 +40,17 @@ BuildRequires: make >= 4 BuildRequires: python-rpm-macros BuildRequires: zip BuildArch: noarch -# %%primary_python not available in Leap yet -Requires: %(echo %{python_module yt-dlp} | perl -pe 's{.* }{}g') +Obsoletes: yt-dlp-bash-completion < %version-%release +Provides: yt-dlp-bash-completion = %version-%release +Obsoletes: yt-dlp-fish-completion < %version-%release +Provides: yt-dlp-fish-completion = %version-%release +Obsoletes: yt-dlp-zsh-completion < %version-%release +Provides: yt-dlp-zsh-completion = %version-%release +%if 0%{?suse_version} < 1600 +Requires: python312-yt-dlp = %version +%else +Requires: python3-yt-dlp = %version +%endif %define python_subpackage_only 1 %python_subpackages @@ -44,32 +58,14 @@ Requires: %(echo %{python_module yt-dlp} | perl -pe 's{.* }{}g') yt-dlp is a command-line program to retrieve videos from YouTube.com and other video sites for later watching. -%package -n yt-dlp-bash-completion -Summary: Bash completion for yt-dlp -Group: System/Shells -Requires: bash-completion -Supplements: (yt-dlp and bash-completion) +%package -n yt-dlp-youtube-dl +Summary: Compat symlinks for youtube-dl +Requires: yt-dlp +Provides: youtube-dl +Conflicts: youtube-dl -%description -n yt-dlp-bash-completion -Bash command line completion support for yt-dlp. - -%package -n yt-dlp-fish-completion -Summary: Fish completion for yt-dlp -Group: System/Shells -Requires: fish -Supplements: (yt-dlp and fish) - -%description -n yt-dlp-fish-completion -Fish command line completion support for yt-dlp. - -%package -n yt-dlp-zsh-completion -Summary: Zsh Completion for yt-dlp -Group: System/Shells -Requires: zsh -Supplements: (yt-dlp and zsh) - -%description -n yt-dlp-zsh-completion -ZSH command line completion support for yt-dlp. +%description -n yt-dlp-youtube-dl +This package installs "youtube-dl" as a symlink to yt-dlp. %package -n python-yt-dlp Summary: yt-dlp Python library @@ -86,6 +82,12 @@ The direct Python interface into yt-dlp. %prep %autosetup -p1 -n %name +# remove shebang +find . -type f -name "*.py" -exec sed -i '/^#!/d' {} \; + +# fix Leap 15.6 build wrt hatchling +sed -e '/3\.14/d' -e '/^license\-files/d' \ + -i pyproject.toml %build rm -f youtube-dl yt-dlp @@ -93,30 +95,40 @@ rm -f youtube-dl yt-dlp # A self-decompressing yt-dlp is built only when python_build is not # exercised; else yt-dlp is a loader. # +%if 0%{?suse_version} < 1600 +export PYTHON=%__python312 +%endif %pyproject_wheel %make_build yt-dlp %install b="%buildroot" %pyproject_install -%fdupes %buildroot/usr +ln -s yt-dlp "$b/%_bindir/youtube-dl" rm -Rf "$b/%_datadir/doc" +# if you leave everything as-is, rpmlint complains about +# python312-yt-dlp.noarch: W: files-duplicate +# /usr/lib/python3.12/site-packages/yt_dlp/utils/__pycache__/progress.cpython-312.pyc +# /usr/lib/python3.12/site-packages/yt_dlp/utils/__pycache__/progress.cpython-312.opt-1.pyc +# if you add fdupes, rpmlint complains about +# python312-yt-dlp.noarch: E: python-bytecode-inconsistent-mtime +# /usr/lib/python3.12/site-packages/yt_dlp/extractor/__pycache__/screencastomatic.cpython-312.pyc +# 2024-09-29T18:11:02 +# /usr/lib/python3.12/site-packages/yt_dlp/extractor/screencastomatic.py +# 2024-09-29T18:11:01 %files -n yt-dlp %license LICENSE %doc README.md %_bindir/%name %_mandir/man1/%name.1%ext_man - -%files -n yt-dlp-bash-completion %_datadir/bash-completion/ - -%files -n yt-dlp-fish-completion %_datadir/fish/ - -%files -n yt-dlp-zsh-completion %_datadir/zsh/ +%files -n yt-dlp-youtube-dl +%_bindir/youtube-dl + %files %{python_files yt-dlp} %python_sitelib/y* diff --git a/yt-dlp.tar.gz b/yt-dlp.tar.gz index cdaea08..1c611fb 100644 --- a/yt-dlp.tar.gz +++ b/yt-dlp.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83dbf15456490e7efe9ba839922f8221d07cf1168b29653fd476faa3cdf91235 -size 5638920 +oid sha256:1a2221451f0b4815b4bd6dfa665238f44b34cb1dac01c1cfda5dff36459e1164 +size 6011138