Commit Graph

1254 Commits (23d829a3420450bcfb0788e6fb2cf4f6acdbe596)

Author SHA1 Message Date
pukkandan 9acf1ee25f
[jsinterp] Handle `Date` at epoch 0
Closes 
pukkandan 65f6e80780
[dependencies] Simplify `Cryptodome`
Closes , closes , closes 
pukkandan 45b2ee6f4f
Update to ytdl-commit-2dd6c6e
[YouTube] Avoid crash if uploader_id extraction fails
2dd6c6edd8

Except:
    * 295736c9cba714fb5de7d1c3dd31d86e50091cf8 [jsinterp] Improve parsing
    * 384f632e8a9b61e864a26678d85b2b39933b9bae [ITV] Overhaul ITV extractor
    * 33db85c571304bbd6863e3407ad8d08764c9e53b [feat]: Add support to external downloader aria2p
Simon Sawicki 6839ae1f6d
[utils] `traverse_obj`: Fix more bugs
and cleanup uses of `default=[]`

Continued from b1bde57bef
Simon Sawicki b1bde57bef
[utils] `traverse_obj`: Fix several behavioral problems
See  for further info

Authored by: Grub4K
pukkandan f6a765ceb5
[dependencies] Standardize `Cryptodome` imports
Simon Sawicki 776995bc10
[utils] `traverse_obj`: Various improvements
- Add `set` key for transformations/filters
- Add `re.Match` group names
- Fix behavior for `expected_type` with `dict` key
- Raise for filter function signature mismatch in debug

Authored by: Grub4K
pukkandan 8b008d6254
[jsinterp] Support `if` statements
Closes 
Simon Sawicki 773c272d66
Fix config locations ()
Bug in 8e40b9d1ec
Closes 

Authored by: Grub4k, coletdjnz, pukkandan
Matthew 8e40b9d1ec
Improve plugin architecture ()
to make plugins easier to develop and use:
* Plugins are now loaded as namespace packages.
* Plugins can be loaded in any distribution of yt-dlp (binary, pip, source, etc.).
* Plugin packages can be installed and managed via pip, or dropped into any of the documented locations.
* Users do not need to edit any code files to install plugins.
* Backwards-compatible with previous plugin architecture.

As a side-effect, yt-dlp will now search in a few more locations for config files.

Closes https://github.com/yt-dlp/yt-dlp/issues/1389

Authored by: flashdagger, coletdjnz, pukkandan, Grub4K
Co-authored-by: Marcel <flashdagger@googlemail.com>
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
Co-authored-by: Simon Sawicki <accounts@grub4k.xyz>
pukkandan fbb7383306
Add `weba` to known extensions
ChillingPepper d5f043d127
[utils] js_to_json: Fix bug in f55523c ()
Authored by: ChillingPepper, pukkandan
pukkandan 9f14daf22b
[extractor] Deprecate `_sort_formats`
pukkandan 6368e2e639
[cleanup] Misc
Closes 
Robert Geislinger 7aaf4cd2a8
[cleanup] Misc
Closes , Closes 

Authored by: pukkandan, Alienmaster
pukkandan 495322b95b
[test] Allow `extract_flat` in download tests
Authored by: coletdjnz, pukkandan
Matthew 86973308cd
[extractor/youtube:tab] Update tab handling for redesign ()
Closes , , 
Authored by: coletdjnz, pukkandan
pukkandan 46d09f8707
[cleanup] Lint and misc cleanup
pukkandan db4678e448
Update to ytdl-commit-de39d128
[extractor/ceskatelevize] Back-port extractor from yt-dlp
de39d1281c

Closes , Closes , Closes 
Alex Karabanov c9bd65185c
[extractor/zenyandex] Fix extractors (, )
Closes 
Authored by:  lksj, puc9, pukkandan

Co-authored-by: puc9 <51006296+puc9@users.noreply.github.com>
Ajay Ramachandran 63c547d71c
[SponsorBlock] Support `chapter` category ()
Authored by: ajayyy, pukkandan
Simon Sawicki a71b812f53
[utils] `js_to_json`: Improve escape handling ()
Authored by: Grub4K
Simon Sawicki 36069409ec
[cookies] Improve `LenientSimpleCookie` ()
Closes  
Authored by: Grub4K
pukkandan 0468a3b325
[jsinterp] Improve separating regex
Fixes https://github.com/yt-dlp/yt-dlp/issues/4635#issuecomment-1273974909
Matthew 4c9a1a3ba5
[extractor/wordpress:mb.miniAudioPlayer] Add embed extractor ()
Closes https://github.com/yt-dlp/yt-dlp/issues/4994

Authored by: coletdjnz
Simon Sawicki 7b0127e1e1
[utils] `traverse_obj`: Allow `re.Match` objects ()
Authored by: Grub4K
Simon Sawicki f99bbfc983
[utils] `traverse_obj`: Always return list when branching ()
Fixes 
Authored by: Grub4K
nixxo 81b6102d20
[downloader/ism] Support ec-3 codec ()
Closes 
Authored by: nixxo
Simon Sawicki ab029d7e92
[utils] `traverse_obj`: Rewrite, document and add tests ()
Authored by: Grub4K
Simon Sawicki 8817a80d3a
[cookies] Parse cookies leniently ()
Closes , 
Authored by: Grub4K
Elyse 7657ec7ed6
[utils] `base_url`: URL paths can contain `&` ()
Authored by: elyse0
Closes 
pukkandan 07a1250e0e
[outtmpl] Curly braces to filter keys
pukkandan 1a7c9fad9f
[jsinterp] Workaround operator associativity issue
https://github.com/yt-dlp/yt-dlp/issues/4635#issuecomment-1235384480
pukkandan d2c8aadf79
[cleanup] Misc
Closes , Closes , Closes 
Authored by: pukkandan, MrRawes, DavidH-2022
pukkandan 1ac7f46184
Update to ytdl-commit-ed5c44e7
[compat] Replace deficient ChainMap class in Py3.3 and earlier
ed5c44e7b7
pukkandan 05deb747bb
[jsinterp] Fix escape in regex
Elyse f26af78a8a
[jsinterp] Add `charcodeAt` and bitwise overflow ()
Authored by: elyse0
pukkandan d81ba7d491
[jsinterp, extractor/youtube] Minor fixes
pukkandan c4b2df872d
[jsinterp] Fix `_separate`
Ref: https://github.com/yt-dlp/yt-dlp/issues/4635#issuecomment-1231126941
pukkandan 164b03c486
[jsinterp] Fix bug in operator precedence
Fixes https://github.com/yt-dlp/yt-dlp/issues/4635#issuecomment-1226659543
pukkandan e5458d1d88
Fix lazy extractor bug in fe7866d0ed
and add test

Fixes https://github.com/yt-dlp/yt-dlp/pull/3234#issuecomment-1225347071
pukkandan 90a1df305b
[test] Fix test_youtube_signature
pukkandan be13a6e525
[jsinterp] Bring on-par with youtube-dl
Code from: https://github.com/ytdl-org/youtube-dl/pull/31175, https://github.com/ytdl-org/youtube-dl/pull/31182

Authored by pukkandan, dirkf
pukkandan f6ca640b12
[jsinterp] Fix for youtube player 1f7d5369
Closes  again
pukkandan 6d3e7424bf
[jsinterp] Fix for youtube player c81bbb4a
pukkandan 49b4ceaedf
[jsinterp] Bring or-par with youtube-dl
Partially cherry-picked from: d231b56717

Authored by pukkandan, dirkf
pukkandan d711839760
Update to ytdl-commit-e6a836d
[core] Make `--max-downloads ...` stop immediately on reaching the limit
e6a836d54c
pukkandan 8f53dc44a0
[jsinterp] Handle new youtube signature functions
Closes 
pukkandan 97d9c79e92
Fix tests for 989a01c261
Lauren N. Liberda fc61aff41b
Determine merge container better (See desc) ()
* Determine the container early. Closes 
* Use codecs instead of just file extensions
* Obey `--prefer-free-formats`
* Allow fallbacks in `--merge-output`

Authored by: pukkandan, selfisekai
pukkandan be5c1ae862
Standardize retry mechanism ()
* [utils] Create `RetryManager`
* Migrate all retries to use the manager
* [extractor] Add wrapper methods for convenience
* Standardize console messages for retries
* Add `--retry-sleep` for extractors
pukkandan f14a2d8382 [extractor/html5] Separate into own extractor ()
Closes 

Authored by: coletdjnz, pukkandan
pukkandan f2e8dbcc00 [extractor, test] Basic framework for embed tests ()
and split download tests so they can be more easily run in CI

Authored by: coletdjnz
nixxo 47304e07dc
[extractor/rai] Add raisudtirol extractor ()
Closes 
Authored by: nixxo
pukkandan 6929b41a21
Remove Python 3.6 support
Closes 
pukkandan 88f60feb32
Fix a904a7f8c6
Lesmiscore a904a7f8c6
Allow users to specify encoding in each config files ()
Authored by: Lesmiscore
Elyse 7a7eeb1005
[aes] Add multiple padding modes in CBC
Authored by: elyse0
pukkandan f5ea47488a
[cleanup] Minor fixes
pukkandan f2df407165
[cleanup] Misc cleanup
pukkandan ae61d108dd
[cleanup] Misc cleanup
pukkandan 14f25df2b6
[compat] Remove deprecated functions from core code
pukkandan 54007a45f1
[cleanup] Consistent style for file heads
pukkandan ac66811112
[compat] Remove more functions
Removing any more will require changes to a large number of extractors
pukkandan 3c5386cd71
[compat] Fix `compat.WINDOWS_VT_MODE`
pukkandan f0500bd1e4
[test] Fix `FakeYDL` signatures
Authored by: coletdjnz
pukkandan 6d1b34896e
Update to ytdl-commit-8a158a9
[NHK] Use new API URL
6508688e88

Closes , Closes 
pukkandan 7e9a612585
Add option `--lazy-playlist` to process entries as they are received
pukkandan 7e88d7d78f
Add slicing notation to `--playlist-items`
* Adds support for negative indices and step
* Add `-I` as alias for `--playlist-index`
* Deprecates `--playlist-start`, `--playlist-end`, `--playlist-reverse`, `--no-playlist-reverse`

Closes , Closes 
Lesmiscore 222a230871
[extractor/common] Recognize `src` attribute from HTML5 media elements ()
Authored by: Lesmiscore
pukkandan 2414649192
[cleanup] Misc cleanup
pukkandan 0f06bcd759
[cleanup] Minor fixes (See desc)
* [youtube] Fix `--youtube-skip-dash-manifest`
* [build] Use `$()` in `Makefile`. Closes 
* Fix bug in 385ffb467b
* Fix bug in 43d7f5a5d0
* [cleanup] Remove unnecessary `utf-8` from `str.encode`/`bytes.decode`
* [utils] LazyList: Expose unnecessarily "protected" attributes
and other minor cleanup
coletdev bb58c9ed5c
Add support for SSL client certificate authentication ()
Adds `--client-certificate`, `--client-certificate-key`, `--client-certificate-password`

Authored-by: coletdjnz
Co-authored-by: df <fieldhouse@gmx.net>
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
pukkandan 0a5a191a2a
Improve `--clean-infojson`
It should not removes fields that may be needed for `--load-infojson`.
Eg: `_ffmpeg_args`, `_has_drm`
pukkandan 9196cbfe8b
[compat] Ensure submodules are correctly wrapped
pukkandan 9b8ee23b99
[dependencies] Create module with all dependency imports
felix 77f9033095
[compat] Split into sub-modules ()
Authored by: fstirlitz, pukkandan
pukkandan 19a0394044
[cleanup] Misc cleanup and refactor ()
pukkandan b6dc37fe2a
[test] Convert warnings into errors
* And fix some existing warnings

Authored by: fstirlitz
pukkandan e5a998f368
[cleanup] Misc cleanup ()
Authored by: fstirlitz, pukkandan
pukkandan f82711587c
[cleanup] Sort imports
Using https://github.com/PyCQA/isort

    isort -m VERTICAL_HANGING_INDENT --py 36 -l 80 --rr -n --tc .
pukkandan 86e5f3ed2e
[cleanup] Upgrade syntax
Using https://github.com/asottile/pyupgrade

1. `__future__` imports and `coding: utf-8` were removed
2. Files were rewritten with `pyupgrade --py36-plus --keep-percent-format`
3. f-strings were cherry-picked from `pyupgrade --py36-plus`

Extractors are left untouched (except removing header) to avoid unnecessary merge conflicts
pukkandan f9934b9614
[cleanup] Mark some compat variables for removal ()
Authored by fstirlitz, pukkandan
felix cfb0511d82
[cleanup] Remove unused code paths ()
Notes:

* `_windows_write_string`: Fixed in 3.6
  * https://bugs.python.org/issue1602
  * PEP: https://www.python.org/dev/peps/pep-0528

* Windows UTF-8 fix: Fixed in 3.3
  * https://bugs.python.org/issue13216

* `__loader__`: is always present in 3.3+
  * https://bugs.python.org/issue14646

* `workaround_optparse_bug9161`: Fixed in 2.7
  * https://bugs.python.org/issue9161

Authored by: fstirlitz
felix ab96d1ad1b
[cleanup] Remove unused scripts/tests ()
Authored by fstirlitz, pukkandan
pukkandan b506289fe2
[test] Add `test_locked_file`
coletdev 1c1b2f96ae
[youtube:tab] Fix duration extraction for shorts ()
Related: https://github.com/TeamNewPipe/NewPipe/issues/8034
Authored-by: coletdjnz
pukkandan 5c3895fff1
[outtmpl] Limit changes during sanitization
Closes 
pukkandan 34baa9fdf0
[outtmpl] Fix replacement/default when used with alternate
pukkandan 6db9c4d57d
Ignore format-specific fields in initial pass of `--match-filter`
Closes 
s0u1h eeb2a770f3
[utils] `format_decimal_suffix`: Fix for very large numbers ()
Authored by: s0u1h
pukkandan 52efa4b312
[extractor] Add `_perform_login` function ()
* Adds new functions `_initialize_pre_login` and `_perform_login` as part of the extractor API
* Adds `ie.supports_login` to the public API
pukkandan 09b49e1f68
Add pre-processor stage `after_filter`
* Move `_match_entry` and `post_extract` to `process_video_result`. It is also left in `process_info` for API compat
* `--list-...` options and `--force-write-archive` now obey filtering options
* Move `SponsorBlockPP` to `after_filter`. Closes https://github.com/yt-dlp/yt-dlp/issues/2536
* Reverts 4ec82a72bb since this commit addresses the issue it was solving
MinePlayersPE c571b3a6ab
[youtube] Fix n-sig extraction for phone player JS ()
Authored by: MinePlayersPE
pukkandan 28469edd7d
Release 2022.02.03
pukkandan d5a398988b
Update to ytdl-commit-78ce962
[youtube] Support channel search
78ce962f4f
pukkandan 48416bc4a8
[youtube] Fix n-sig for player e06dea74
pukkandan 88f23a18e0
[docs,cleanup] Fix linter and misc cleanup
Closes 
pukkandan 6970b6005e
[cleanup] Minor fixes
Closes 
trasssh 4259402c56
[Ted] Rewrite extractor ()
Closes 
Authored by: pukkandan, trassshhub