Commit Graph

303 Commits (f2e9fa3ef7a7ce8e18cec53ea7956a3bb36c59ea)

Author SHA1 Message Date
Lesmiscore a7d4acc018
[youtube] Escape possible `$` in `_extract_n_function_name` regex 2 years ago
pukkandan 0ad92dfb18
[youtube] De-prioritize potentially damaged formats
Closes #2823
2 years ago
pukkandan 2e4cacd038
[youtube] Fix intermittent failure of embed-based age-gate bypass 2 years ago
MinePlayersPE c571b3a6ab
[youtube] Fix n-sig extraction for phone player JS (#2816)
Authored by: MinePlayersPE
2 years ago
coletdev 60f393e48b
[youtube] Ensure subtitle urls are absolute (#2765)
Closes #2755

Authored by: coletdjnz
2 years ago
pukkandan ab6df717d1
[youtube] Differentiate descriptive audio by language code
Related: #2677
2 years ago
pukkandan 0c8d9e5fec
[youtube] Label original auto-subs
Closes #2655
2 years ago
pukkandan 84bbc54599
[youtube:search] Add tests 2 years ago
coletdjnz af5c1c553e
[youtube] Fix search extractor
Regression introduced in 16aa9ea41d. Closes #2628
Authored-by: coletdjnz
2 years ago
pukkandan 455a15e2dc
[cleanup,docs] Minor fixes
Closes #2541, #2484
2 years ago
pukkandan 182bda88e8
[youtube, cleanup] Misc fixes and cleanup 2 years ago
pukkandan 16aa9ea41d [youtube] Add extractor `YoutubeMusicSearchURLIE`
Closes #2568
2 years ago
pukkandan 48416bc4a8
[youtube] Fix n-sig for player e06dea74 2 years ago
coletdjnz 87e8e8a7d0
[youtube:api] Do not use seek when reading HTTPError response
Authored-by: coletdjnz
2 years ago
pukkandan 6970b6005e
[cleanup] Minor fixes
Closes #2334
2 years ago
pukkandan e0ddbd02bd
[cleanup] Use format_field where applicable 2 years ago
coletdjnz 6c73052c0a
[youtube] Extract channel subscriber count (#2399)
Closes #2350
* Adds `channel_follower_count` field
Authored-by: coletdjnz
2 years ago
coletdjnz 396a76f7bf
[youtube] Enforce UTC (#2402)
and [utils] use `utcnow` in `datetime_from_str`

Related: #2223 
Authored by: coletdjnz
2 years ago
coletdjnz 301d07fc4b
[youtube:tab] Extract channel banner (#2400)
Closes #2237
Authored by: coletdjnz
2 years ago
krichbanana 64f36541c9
[youtube:tab] Raise error on tab redirect (#2318)
Closes #2306
Authored by: krichbanana, coletdjnz
2 years ago
pukkandan 66f7c6a3e0
[youtube] Do not return `upload_date` for playlists
Closes #2349
Partially reverts #1018
Re-opens #1883
2 years ago
pukkandan 596379e260
[youtube] Make invalid storyboard URL non-fatal
Closes #2382
2 years ago
pukkandan b6ce9bb038
[youtube] Detect live-stream embeds
Closes #2380
2 years ago
Unit 193 4c968755fc
[PornHub,YouTube] Refresh onion addresses (#2272)
Authored by: unit193
2 years ago
pukkandan 976ae3eabb
[youtube] Update tests 2 years ago
coletdjnz f0d785d3ed
[youtube:tab] Extract more playlist metadata (#2069)
* Add fields modified_date, modified_timestamp
* Add field playlist_count
* [youtube:tab] Extract view_count, playlist_count, modified_date

Authored by: coletdjnz, pukkandan
2 years ago
coletdjnz 18c7683d27
[youtube:api] Update Innertube clients (#2163)
* Updated iOS clients to support 60fps formats (see: https://github.com/TeamNewPipe/NewPipeExtractor/issues/680#issuecomment-1002724558)
* General update of versions and keys of other clients
 Authored-by: coletdjnz
3 years ago
pukkandan 185bf31070
[youtube] End `live-from-start` properly when stream ends with 403
Closes #2089
3 years ago
coletdjnz a709d87335
[youtube:tab] Extract video thumbnails from playlist (#2096)
closes #1184
Co-Authored-by: coletdjnz, pukkandan
3 years ago
The Hatsune Daishi adbc4ec4bb
[dash,youtube] Download live from start to end (#888)
* Add option `--live-from-start` to enable downloading live videos from start
* Add key `is_from_start` in formats to identify formats (of live videos) that downloads from start
* [dash] Create protocol `http_dash_segments_generator` that allows a function to be passed instead of fragments
* [fragment] Allow multiple live dash formats to download simultaneously
* [youtube] Implement fragment re-fetching for the live dash formats
* [youtube] Re-extract dash manifest every 5 hours (manifest expires in 6hrs)
* [postprocessor/ffmpeg] Add `FFmpegFixupDuplicateMoovPP` to fixup duplicated moov atoms

Known issue: Ctrl+C doesn't work on Windows when downloading multiple formats

Closes #1521
Authored by: nao20010128nao, pukkandan
3 years ago
coletdjnz f3aa3c3f98
[youtube:tab] Extract more metadata from feeds/channels/playlists (#1018)
Parse relative time text, extract live, upcoming status, availability and channel id from feeds/channels/playlists (where applicable). 
Closes #1883
Authored-by: coletdjnz
3 years ago
pukkandan 37e57a9fd4
[youtube:tab] Ignore query when redirecting channel to playlist
and cleanup of related code
Closes #2046
3 years ago
pukkandan 39ca3b5c7f
[extractor] Standardize `_live_title` 3 years ago
coletdjnz 46383212b3
[youtube:comments] Add more options for limiting number of comments extracted (#1626)
Extends `max_comments` extractor arg to support `max-parents,max-replies,max-replies-per-thread`.
Authored-by: coletdjnz
3 years ago
pukkandan ff9f925b63
[test/download] Add more fields 3 years ago
pukkandan 5f7cb91ae9
[youtube] Fix `ytsearchdate`
Related: #1851
3 years ago
pukkandan b29165267f
[youtube] Decrypt n-sig for URLs with `ratebypass`
Closes #1796
3 years ago
pukkandan a61fd4cf6f
[youtube:search_url] Add playlist/channel support
Closes #1213, #1214
3 years ago
pukkandan a6213a4925
[cleanup,youtube] Reorganize Tab and Search extractor inheritances 3 years ago
pukkandan dd2a987d3f
[tests] Fix tests 3 years ago
pukkandan 9222c38182
[cleanup] Minor cleanup
Closes #1696, Closes #1673
3 years ago
pukkandan 720c309932
[youtube] Add storyboard formats
Closes: #1553, https://github.com/ytdl-org/youtube-dl/issues/9868
Related: https://github.com/ytdl-org/youtube-dl/pull/14951
3 years ago
coletdjnz d0d012d4e7
[youtube] Add `default` player client (#1685)
Authored-by: coletdjnz
3 years ago
pukkandan e339d25a0d
[youtube] Minor improvement to format sorting 3 years ago
pukkandan c586f9e8de
[cleanup] minor fixes 3 years ago
pukkandan aa9369a2d8
[cleanup] Minor improvements to error and debug messages 3 years ago
Ryan Hendrickson d9190e4467
[youtube] Add Invidious list for playlists/channels (#1567)
Authored by: rhendric
3 years ago
pukkandan 34921b4345
[utils] Add `join_nonempty` 3 years ago
pukkandan c18d4482b1
[youtube] Fix sorting for some videos 3 years ago
pukkandan a4211baff5
[cleanup] Minor cleanup 3 years ago
pukkandan d89257f398
[youtube] Remove unnecessary no-playlist warning 3 years ago
pukkandan a0bb6ce58d
[youtube] refactor itag processing 3 years ago
pukkandan 404f611f1c
[youtube] Fix throttling by decrypting n-sig (#1437) 3 years ago
pukkandan fccf502118
[youtube] Populate `thumbnail` with the best "known" thumbnail
Closes #402, Related: https://github.com/yt-dlp/yt-dlp/issues/340#issuecomment-950290624
3 years ago
pukkandan 96565c7e55
[cleanup] Add keyword automatically to SearchIE descriptions
and some minor cleanup of docs
3 years ago
pukkandan 49a57e70a9
[cleanup] misc 3 years ago
pukkandan 176f1866cb
Add HDR information to formats 3 years ago
pukkandan e820fbaa6f
Do not verify thumbnail URLs by default
Partially reverts cca80fe611 and 0ba692acc8

Unless `--check-formats` is specified, this causes yt-dlp to return incorrect thumbnail urls.
See https://github.com/yt-dlp/yt-dlp/issues/340#issuecomment-877909966, #402

But the overhead in general use is not worth it

Closes #694, #725
3 years ago
pukkandan 24b0a72b30
[cleanup] Remove broken youtube login code 3 years ago
coletdjnz aae16f6ed9
[youtube:comments] Fix comment section not being extracted in new layouts (#1324)
Co-authored-by: coletdjnz, pukkandan
3 years ago
pukkandan 580d3274e5 [youtube] Expose different formats with same itag 3 years ago
pukkandan ecdc9049c0
[YouTube] Add auto-translated subtitles
Closes #1245
3 years ago
pukkandan a2160aa45f
[extractor] Generalize `getcomments` implementation 3 years ago
pukkandan cc16383ff3
[extractor] Simplify search extractors 3 years ago
coletdjnz ac56cf38a4
[youtube:tab] Fallback to API when webpage fails to download (#1122)
and add some extractor_args to force this mode
Authored by: coletdjnz
3 years ago
pukkandan 1276a43a77
[youtube] Fix non-fatal errors in fetching player 3 years ago
pukkandan e6f21b3d92
[docs,cleanup] Some minor refactoring and improve docs 3 years ago
coletdjnz 99e9e001de
[youtube] Cleanup authentication code (#786)
Authored by: coletdjnz
3 years ago
pukkandan 5e3f2f8fc4
[youtube] Return full URL instead of just ID 3 years ago
pukkandan 3cd786dbd7
[youtube] Warn when trying to download clips 3 years ago
coletdjnz b6de707d13
[youtube] Improvements to JS player extraction (See desc) (#860)
* fallback player url extraction when it fails to be extracted from the webpage
* don't download js player unnecessarily for clients that don't require it
* try to extract js player url from any additional client configs
* ability to skip the js player usage/download using `player_skip=js`
* ability to skip the initial webpage download using `player_skip=webpage`

known issue:
* authentication for multi-channel accounts and multi-account cookies may not work correctly if the webpage or client configs are skipped
*  formats from the web client requiring signature decryption will be skipped if player js extraction is skipped

Authored by: coletdjnz
3 years ago
pukkandan 526d74ec5a
[cleanup] Misc 3 years ago
coletdjnz c0ac49bcca
[youtube] Retry on 'Unknown Error' (#854)
and do not repeat unimportant alerts

Closes #839
Authored by: coletdjnz
3 years ago
pukkandan a7429aa9fa
[youtube] Fix subtitle names 3 years ago
pukkandan c311988d19
[youtube] Improve 26e8e04454
The streams of the same itag may have slightly different size/bitrate
3 years ago
pukkandan 26e8e04454
[youtube] Prefer audio stream that YouTube considers default
Fixes: https://github.com/ytdl-org/youtube-dl/issues/29864
Related: https://github.com/clsid2/mpc-hc/issues/1268
3 years ago
coletdjnz 0bb1bc1b10
[youtube] Remove annotations and deprecate `--write-annotations` (#765)
Closes #692 
Authored by: coletdjnz
3 years ago
pukkandan 88acdbc269
[extractor] Better error message for DRM (#729)
Closes #636
3 years ago
Tom-Oliver Heidel 9b5fa9ee7c
[youtube] Add av01 itags to known formats list (#747)
Authored by: blackjack4494
3 years ago
pukkandan 3fb4e21b38
[lazy_extractors] Fix `suitable` and add flake8 test 3 years ago
pukkandan 4dfbf8696b
[utils] Add `parse_qs` 3 years ago
pukkandan 8fc54b1230
[youtube] Add `shorts` to `_VALID_URL`
Normally the generic extractor will redirect the URL,
but the cookies consent screen may sometimes appear instead

Closes #752
3 years ago
pukkandan 5ad28e7ffd
[extractor] Common function `_match_valid_url` 3 years ago
coletdjnz 641ad5d813
[youtube] Extract error messages from HTTPError response (#644)
Authored by: coletdjnz
3 years ago
PSlava 858a65ecc1
[youtube] Improve signature function detection (#641)
Authored by: PSlava (Slava <slash@i-slash.com>)
3 years ago
pukkandan 379e44ed3c [youtube] Raise appropriate error when API pages can't be downloaded 3 years ago
pukkandan 57015a4a3f
[youtube] extractor-arg to show live dash formats
If replay is enabled, these formats can be used to download the last 4 hours
3 years ago
pukkandan cf87314d4e
[youtube] Extract SAPISID only once 3 years ago
David e7e94f2a5c
[youtube] Add age-gate bypass for unverified accounts (#600)
Adds `_creator` variants for each client

Authored by: zerodytrash, colethedj, pukkandan
3 years ago
coletdjnz eca330cb88
[youtube] Fix default global API key
bug introduced in 000c15a4ca
3 years ago
pukkandan 3619f78d2c
[youtube] Misc cleanup (#577)
Authored by: pukkandan, colethedj
3 years ago
pukkandan 65c2fde23f
[youtube] Add `thirdParty` to agegate clients (#577)
* This allows more videos like `tf2U5Vyj0oU` to become embeddable
    See https://github.com/yt-dlp/yt-dlp/pull/575#issuecomment-888837000
* Also added tests for all types of age-gate

Closes #581
3 years ago
pukkandan 000c15a4ca
[youtube] simplify and de-duplicate client definitions (#577) 3 years ago
colethedj 9275f62cf8
[youtube] Improve age-gate detection (#577)
Authored by: colethedj
3 years ago
coletdjnz 6552469433
[youtube] Force `hl=en` for comments (#594)
Closes #532
3 years ago
MinePlayersPE c0bc527bca
[YouTube] Age-gate bypass implementation (#575)
* Calling the API with `clientScreen=EMBED` allows access to most age-gated videos - discovered by @ccdffddfddfdsfedeee (https://github.com/yt-dlp/yt-dlp/issues/574#issuecomment-887171136)
* Adds clients: (web/android/ios)_(embedded/agegate), mweb_embedded
* Renamed mobile_web to mweb

Closes #574

Authored by pukkandan, MinePlayersPE
3 years ago
pukkandan 2a9c6dcd22
[youtube] Fix format sorting when using alternate clients 3 years ago
coletdjnz 5a1fc62b41
[youtube] Add `mobile_web` client (#557)
Authored by: colethedj
3 years ago
pukkandan b4c055bac2
[youtube] Add `player_client=all` 3 years ago
pukkandan f703a88055
Release 2021.07.24 3 years ago
pukkandan a353beba83
[youtube:tab] Extract video duration early
Based on: https://github.com/ytdl-org/youtube-dl/pull/29487 by glenn-slayden
3 years ago
pukkandan 052e135029
[youtube] Simplify `_get_text` early 3 years ago
pukkandan 3944e7af92
[youtube] Fix subtitles only being extracted from the first client
Closes #547
3 years ago
pukkandan ad34b2951e
Try all clients even if age-gated
Reverts: 892e31ce7c

If some API calls have any issue, saving the state will cause unnecessary errors
3 years ago
pukkandan c8fa48fd94
[youtube] Disable `get_video_info` age-gate workaround
This now seems to be completely dead
Closes: #553
3 years ago
coletdjnz 2fd226f6a7
[youtube] Fix age-gated videos for API clients when cookies are supplied (#545)
Fixes #543
Authored by: colethedj
3 years ago
pukkandan 245524e6a3
Release 2021.07.21
and fix some typos
Closes #538
3 years ago
pukkandan 9c0d7f4951
[youtube] Make `--extractor-retries` work for more errors
Closes #507
3 years ago
coletdjnz c926c9541f
[youtube] Add debug message for SAPISID cookie extraction (#540)
Authored by: colethedj
3 years ago
Matt Broadway 982ee69a74
Add option `--cookies-from-browser` to load cookies from a browser (#488)
* also adds `--no-cookies-from-browser`

Original PR: https://github.com/ytdl-org/youtube-dl/pull/29201
Authored by: mbway
3 years ago
pukkandan 7ea6541124
[youtube] Improve extraction of livestream metadata
Modified from and closes #441
Authored by: pukkandan, krichbanana
3 years ago
pukkandan 352d63fdb5
[utils] Improve `traverse_obj` 3 years ago
pukkandan 11f9be0912
[youtube] Extract data from multiple clients (#536)
* `player_client` accepts multiple clients
* default `player_client` = `android,web`
* music clients can be specifically requested
* Add IOS `player_client`
* Hide live dash since they can't be downloaded

Closes #501

Authored-by: pukkandan, colethedj
3 years ago
coletdjnz a1a7907bc0
[youtube] Fix controversial videos when requested via API (#533)
Closes: https://github.com/yt-dlp/yt-dlp/issues/511#issuecomment-883024350
Authored by: colethedj
3 years ago
pukkandan d61fc64618
[youtube:tab] Fix channels tab 3 years ago
pukkandan da503b7a52
[youtube] Make `parse_time_text` and `_extract_chapters` non-fatal
Related: #532, 7c365c2109
3 years ago
pukkandan 7c365c2109
[youtube] Sanity check `chapters` (and refactor related code)
Closes #520
3 years ago
pukkandan cca80fe611 [youtube] Extract even more thumbnails and reduce testing
* Also fix bug where `_test_url` was being ignored

Ref: https://stackoverflow.com/a/20542029
Related: #340
3 years ago
pukkandan 0ba692acc8
[youtube] Extract more thumbnails
* The thumbnail URLs are hard-coded and their actual existence is tested lazily
* Added option `--no-check-formats` to not test them

Closes #340, Related: #402, #337, https://github.com/ytdl-org/youtube-dl/issues/29049
3 years ago
coletdjnz fe93e2c4cf
[youtube] misc cleanup and bug fixes (#505)
* Update some `_extract_response` calls to keep them consistent
* Cleanup continuation extraction related code using new API format
* Improve `_extract_account_syncid` to support multiple parameters
* Generalize `get_text` and related functions into one
* Update `INNERTUBE_CONTEXT_CLIENT_NAME` with integer values

Authored by: colethedj
3 years ago
coletdjnz 314ee30548
[youtube] Fix session index extraction and headers for non-web player clients (#526)
Fixes #522
3 years ago
coletdjnz 34917076ad
[youtube] Fix authentication when using multiple accounts
`SESSION_INDEX` in `ytcfg` is the index of the active account and should be sent as `X-Goog-AuthUser` header

Closes #518
Authored by @colethedj
3 years ago
coletdjnz 47193e0298
[youtube:tab] Extract playlist availability (#504)
Authored by: colethedj
3 years ago
coletdjnz 49bd8c66d3
[youtube:comments] Improve comment vote count parsing (fixes #506) (#508)
Authored by: colethedj
3 years ago
coletdjnz c888ffb95a
[youtube] Use android client as default and add age-gate bypass for it (#492)
Authored by: colethedj
3 years ago
coletdjnz 9752433221
[youtube:comments] Fix `is_favorited` (#491)
Authored by colethedj
3 years ago
coletdjnz 2d6659b9ea
[youtube:comments] Move comment extraction to new API (#466)
Closes #438, #481, #485 

Authored by: colethedj
3 years ago
pukkandan 60bdb7bd9e
[youtube] Fix sorting of 3gp format 3 years ago
pukkandan 4bb6b02f93
Improve `extractor_args` parsing 3 years ago
krichbanana f6745c4980
[Youtube] Choose correct Live chat API for upcoming streams (#460)
Authored by: krichbanana
3 years ago
coletdjnz 109dd3b237
[youtube] Use new API for additional video extraction requests (#328)
Co-authored-by: colethedj, pukkandan
Closes https://github.com/yt-dlp/yt-dlp/issues/427
Workarounds for https://github.com/ytdl-org/youtube-dl/issues/29326, https://github.com/yt-dlp/yt-dlp/issues/319, https://github.com/ytdl-org/youtube-dl/issues/29086
3 years ago
coletdjnz 45261e063b
[youtube:comments] Fix error handling and add `itct` to params (#446)
Should close #439 (untested)

Authored by: colethedj
3 years ago
pukkandan 49c258e18d
[youtube] Fix subtitle names for age-gated videos
Related: https://github.com/iv-org/invidious/pull/2205#issuecomment-868680486
3 years ago
pukkandan 5d3a0e794b
Add `--extractor-args` to pass extractor-specific arguments 3 years ago
pukkandan ed807c1837
Update to ytdl-commit-379f52a
[liveleak] Remove extractor
379f52a495
3 years ago
siikamiika c60ee3a218
[youtube_live_chat] Support ongoing live chat (#422)
Authored by: siikamiika
3 years ago
pukkandan 4e6767b5f2
[youtube] Temporary fix for age-gate
Related:
https://stackoverflow.com/a/67629882
https://github.com/yt-dlp/yt-dlp/issues/319
https://github.com/ytdl-org/youtube-dl/issues/29333
https://github.com/ytdl-org/youtube-dl/issues/29086
3 years ago
pukkandan 45db527fa6
[youtube] Login is not needed for `:ytrec` 3 years ago
coletdjnz 4ba001080f
[youtube] Non-fatal alert reporting for unavailable videos page (#401)
Co-Authored by: colethedj, pukkandan
3 years ago
coletdjnz 1974e99f4b
[youtube] Improve SAPISID cookie handling (closes #393) (#395)
Author: colethedj
3 years ago
pukkandan bea742222f
[youtube] Support shorts URL
Closes #375
3 years ago
pukkandan 46953e7e6e
[youtube:playlist] fix bug 3 years ago
pukkandan 8d68ab98a7
[youtube] Fix bug where not all hls formats were extracted
Bug introduced in 9297939ec3
3 years ago
pukkandan 09f1580e2d
[youtube] `/live` URLs should raise error if channel is not live
Fixes: https://github.com/ytdl-org/youtube-dl/issues/29090
3 years ago
coletdjnz 00ae27690d
[youtube] Add `html5=1` param to `get_video_info` page requests (#329)
Workaround for #319, https://github.com/ytdl-org/youtube-dl/issues/29086
Authored by: colethedj
3 years ago
pukkandan 9d5d4d64f8
[youtube] Better message when login required 3 years ago
pukkandan d3fc8074a4
[youtube] Sort audio-only formats correctly
Closes #317
3 years ago
pukkandan 07cce701de
[cleanup] linter, code formatting and readme 3 years ago
pukkandan ff2751ac9c
[youtube] Always extract `maxresdefault` thumbnail
Fixes: https://github.com/ytdl-org/youtube-dl/issues/29049
3 years ago
pukkandan abcdd12b26
[youtube:tab] Support youtube music `MP` pages 3 years ago