Package Details: yt-dlp-git 2024.03.10.r9.g86d2f4d-1

Git Clone URL: https://aur.archlinux.org/yt-dlp-git.git (read-only, click to copy)
Package Base: yt-dlp-git
Description: A youtube-dl fork with additional features and fixes (git)
Upstream URL: https://github.com/yt-dlp/yt-dlp
Licenses: Unlicense
Conflicts: yt-dlp
Provides: yt-dlp
Submitter: katt
Maintainer: katt
Last Packager: katt
Votes: 43
Popularity: 0.24
First Submitted: 2021-08-08 15:20 (UTC)
Last Updated: 2024-03-17 17:40 (UTC)

Dependencies (24)

Required by (124)

Sources (1)

Latest Comments

1 2 3 4 5 6 .. 9 Next › Last »

bashonly commented on 2024-04-29 23:41 (UTC)

The failing test won't be patched upstream until the next stable release.

If you don't want to wait, you could update the PKGBUILD to have it pass -Werror to pytest:

diff --git a/PKGBUILD b/PKGBUILD
index face841..5cc2eb3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -47,7 +47,7 @@ build() {

 check() {
     cd "${pkgname%-git}"
-    pytest -v -m "not download"
+    pytest -v -Werror -m "not download"
 }

 package() {

Upstream will be making the same adjustment to its Makefile test recipes: https://github.com/yt-dlp/yt-dlp/pull/9765/commits/c36cac6b546973b7262f658d14a55403e6968ba0

Note that this PKGBUILD change will not be necessary after the next stable upstream release; I just thought I'd offer this here as a workaround for users who want to install without skipping the check

matejdro commented on 2024-04-28 05:23 (UTC)

Test fails for me on a recent version:

_________________________________________________________________________________________________________________________________________ TestInfoExtractor.test_search_nextjs_data _________________________________________________________________________________________________________________________________________

self = <test.test_InfoExtractor.TestInfoExtractor testMethod=test_search_nextjs_data>

    def test_search_nextjs_data(self):
        data = '<script id="__NEXT_DATA__" type="application/json">{"props":{}}</script>'
        self.assertEqual(self.ie._search_nextjs_data(data, None), {'props': {}})
        self.assertEqual(self.ie._search_nextjs_data('', None, fatal=False), {})
        self.assertEqual(self.ie._search_nextjs_data('', None, default=None), None)
        self.assertEqual(self.ie._search_nextjs_data('', None, default={}), {})
>       with self.assertRaises(DeprecationWarning):
E       AssertionError: DeprecationWarning not raised

test/test_InfoExtractor.py:1915: AssertionError
--------------------------------------------------------------------------------------------------------------------------------------------------- Captured stderr call ----------------------------------------------------------------------------------------------------------------------------------------------------
WARNING: [Dummy] unable to extract next.js data; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
===================================================================================================================================================== warnings summary ======================================================================================================================================================
test/test_InfoExtractor.py::TestInfoExtractor::test_search_nextjs_data
  /home/matej/.cache/yay/yt-dlp-git/src/yt-dlp/test/test_InfoExtractor.py:1916: DeprecationWarning: using `default='{}'` is deprecated, use `default={}` instead
    self.assertEqual(self.ie._search_nextjs_data('', None, default='{}'), {})

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

It looks like upstream issue: https://github.com/yt-dlp/yt-dlp/issues/9763

gesh commented on 2024-03-31 12:41 (UTC)

Missing optdepend: curl_cffi (added 52f5be1f1e0dc45bb397ab950f564721976a39bf), used 'for impersonating browser requests. This may be required for some sites that employ TLS fingerprinting.'

However, I recall it being a pain to install in practice, so perhaps wait until the stable package adds it (so that by then, the installation path will stabilize)?

katt commented on 2024-03-13 17:48 (UTC)

@Alad I cannot reproduce this, neither in chroot or outside it. The package in arch's repos is on the same commit and they don't have that as a dep either.

Alad commented on 2024-03-13 11:32 (UTC) (edited on 2024-03-13 11:35 (UTC) by Alad)

test_websockets.py fails:

edit: I suppose python-websockets >=12.0 is required

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
test/test_websockets.py:78: in create_ws_websocket_server
    return create_websocket_server()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

ws_kwargs = {}

    def create_websocket_server(**ws_kwargs):
>       import websockets.sync.server
E       ModuleNotFoundError: No module named 'websockets.sync'

test/test_websockets.py:68: ModuleNotFoundError

katt commented on 2024-02-15 19:16 (UTC)

@bashonly Did it in two steps, didn't have time to actually look into what lazy extractors do until today but wanted a fix out asap. Thanks for the tip! :)

bashonly commented on 2024-02-12 21:54 (UTC)

yt-dlp has migrated from setuptools to hatchling for its build backend as of the latest batch of commits. As a result, the makedepends need to be updated. Also, I would suggest making the lazy extractors during build:

diff --git a/PKGBUILD b/PKGBUILD
index 1fa2398..a21bc0c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@ arch=(any)
 url=https://github.com/yt-dlp/yt-dlp
 license=(Unlicense)
 depends=(python python-certifi python-requests)
-makedepends=(pandoc python-build python-installer python-setuptools python-wheel git)
+makedepends=(pandoc python-build python-hatchling python-installer python-wheel git)
 checkdepends=(python-pytest)
 optdepends=('ffmpeg: for video post-processing'
             'rtmpdump: for rtmp streams support'
@@ -41,6 +41,7 @@ prepare() {
 build() {
     cd "${pkgname%-git}"
     make pypi-files
+    python devscripts/make_lazy_extractors.py
     python -m build --wheel --no-isolation
 }

katt commented on 2024-01-06 16:51 (UTC)

@bashonly Thank you for the heads up, I've updated the package to add the new dependencies.

bashonly commented on 2024-01-06 16:27 (UTC)

Hi, I have some suggestions to potentially improve this PKGBUILD:

  • Add python-requests to depends since this is considered a hard dependency upstream since release 2023.11.14

  • python-pycryptodome and python-pycryptodomex are interchangeable as far as yt-dlp is concerned, but the latter's Arch package has been out-of-date for a long time. So the former could be added to optdepends

These changes have been already implemented in the extra repository's yt-dlp package: https://gitlab.archlinux.org/archlinux/packaging/packages/yt-dlp/-/commit/98c72baea6cf81b40e5039ff370044c855affbd2