diff --git a/.github/actionlint.yml b/.github/actionlint.yml index d6d5b9abd2..bdd3901a37 100644 --- a/.github/actionlint.yml +++ b/.github/actionlint.yml @@ -1,9 +1,3 @@ -self-hosted-runner: - labels: - # Workaround for the outdated runner list in actionlint v1.7.7 - # Ref: https://github.com/rhysd/actionlint/issues/533 - - windows-11-arm - config-variables: - KEEP_CACHE_WARM - PUSH_VERSION_COMMIT diff --git a/.github/workflows/test-workflows.yml b/.github/workflows/test-workflows.yml index 37bf044d69..d39ab8814b 100644 --- a/.github/workflows/test-workflows.yml +++ b/.github/workflows/test-workflows.yml @@ -17,8 +17,8 @@ on: permissions: contents: read env: - ACTIONLINT_VERSION: "1.7.7" - ACTIONLINT_SHA256SUM: 023070a287cd8cccd71515fedc843f1985bf96c436b7effaecce67290e7e0757 + ACTIONLINT_VERSION: "1.7.8" + ACTIONLINT_SHA256SUM: be92c2652ab7b6d08425428797ceabeb16e31a781c07bc388456b4e592f3e36a ACTIONLINT_REPO: https://github.com/rhysd/actionlint jobs: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89327581c0..99f18b2f32 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -177,7 +177,7 @@ While it is strongly recommended to use `hatch` for yt-dlp development, if you a ```shell # To only install development dependencies: -$ python -m devscripts.install_deps --include dev +$ python -m devscripts.install_deps --include-group dev # Or, for an editable install plus dev dependencies: $ python -m pip install -e ".[default,dev]" diff --git a/README.md b/README.md index d4211b4b0c..8189015c72 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ Example usage: yt-dlp --update-to nightly # To install nightly with pip: -python3 -m pip install -U --pre "yt-dlp[default]" +python -m pip install -U --pre "yt-dlp[default]" ``` When running a yt-dlp version that is older than 90 days, you will see a warning message suggesting to update to the latest version. @@ -265,12 +265,12 @@ To build the standalone executable, you must have Python and `pyinstaller` (plus You can run the following commands: ``` -python3 devscripts/install_deps.py --include pyinstaller -python3 devscripts/make_lazy_extractors.py -python3 -m bundle.pyinstaller +python devscripts/install_deps.py --include-group pyinstaller +python devscripts/make_lazy_extractors.py +python -m bundle.pyinstaller ``` -On some systems, you may need to use `py` or `python` instead of `python3`. +On some systems, you may need to use `py` or `python3` instead of `python`. `python -m bundle.pyinstaller` accepts any arguments that can be passed to `pyinstaller`, such as `--onefile/-F` or `--onedir/-D`, which is further [documented here](https://pyinstaller.org/en/stable/usage.html#what-to-generate). diff --git a/devscripts/changelog_override.json b/devscripts/changelog_override.json index e906838175..ba3f9518fb 100644 --- a/devscripts/changelog_override.json +++ b/devscripts/changelog_override.json @@ -308,5 +308,16 @@ "action": "add", "when": "2c9091e355a7ba5d1edb69796ecdca48199b77fb", "short": "[priority] **A stopgap release with a *TEMPORARY partial* fix for YouTube support**\nSome formats may still be unavailable, especially if cookies are passed to yt-dlp. The ***NEXT*** release, expected very soon, **will require an external JS runtime (e.g. Deno)** in order for YouTube downloads to work properly. [Read more](https://github.com/yt-dlp/yt-dlp/issues/14404)" + }, + { + "action": "change", + "when": "8636a9bac3bed99984c1e297453660468ecf504b", + "short": "Fix 6224a3898821965a7d6a2cb9cc2de40a0fd6e6bc", + "authors": ["Grub4K"] + }, + { + "action": "add", + "when": "6224a3898821965a7d6a2cb9cc2de40a0fd6e6bc", + "short": "[priority] **An external JavaScript runtime is now required for full YouTube support**\nyt-dlp now requires users to have an external JavaScript runtime (e.g. Deno) installed in order to solve the JavaScript challenges presented by YouTube. [Read more](https://github.com/yt-dlp/yt-dlp/issues/15012)" } ] diff --git a/devscripts/make_changelog.py b/devscripts/make_changelog.py index 0b2eb93b4e..88dbf74e4f 100644 --- a/devscripts/make_changelog.py +++ b/devscripts/make_changelog.py @@ -353,6 +353,13 @@ class CommitRange: continue commit = Commit(override_hash, override['short'], override.get('authors') or []) logger.info(f'CHANGE {self._commits[commit.hash]} -> {commit}') + if match := self.FIXES_RE.search(commit.short): + fix_commitish = match.group(1) + if fix_commitish in self._commits: + del self._commits[commit.hash] + self._fixes[fix_commitish].append(commit) + logger.info(f'Found fix for {fix_commitish[:HASH_LENGTH]}: {commit.hash[:HASH_LENGTH]}') + continue self._commits[commit.hash] = commit self._commits = dict(reversed(self._commits.items())) diff --git a/yt_dlp/extractor/abc.py b/yt_dlp/extractor/abc.py index 2e6617842b..cff54d32e5 100644 --- a/yt_dlp/extractor/abc.py +++ b/yt_dlp/extractor/abc.py @@ -321,6 +321,8 @@ class ABCIViewIE(InfoExtractor): entry_protocol='m3u8_native', m3u8_id='hls', fatal=False) if formats: break + else: + formats = [] subtitles = {} src_vtt = stream.get('captions', {}).get('src-vtt') diff --git a/yt_dlp/extractor/tubetugraz.py b/yt_dlp/extractor/tubetugraz.py index b849247b13..0ae805fd10 100644 --- a/yt_dlp/extractor/tubetugraz.py +++ b/yt_dlp/extractor/tubetugraz.py @@ -151,7 +151,6 @@ class TubeTuGrazIE(TubeTuGrazBaseIE): 'title': '#6 (23.11.2017)', 'episode': '#6 (23.11.2017)', 'series': '[INB03001UF] Einführung in die strukturierte Programmierung', - 'creator': 'Safran C', 'duration': 3295818, 'series_id': 'b1192fff-2aa7-4bf0-a5cf-7b15c3bd3b34', 'creators': ['Safran C'],