Commit graph

417 commits

Author SHA1 Message Date
14e399594f
feat: add functions to fetch a user's history and subscriptions 2025-01-05 05:50:58 +01:00
75fce91353
fix: dont leak authorization and cookie header in reports 2024-12-26 01:15:34 +01:00
5ce84c44a6
fix: error 400 when fetching player with login 2024-12-20 03:06:03 +01:00
30f60c30f9
fix: extract transcript from comment voice replies 2024-12-19 01:32:15 +01:00
1b60c97a18
fix: update client versions, enable Opus audio with iOS client 2024-12-18 19:44:42 +01:00
53e5846286
chore: update user agent 2024-12-15 17:49:51 +01:00
44ae456d2c
fix: limit retry attempts to fetch client versions and deobf data 2024-12-13 03:47:37 +01:00
c4feff37a5
fix: lifetime-related lints 2024-12-01 22:29:24 +01:00
6c8108c94a
fix: A/B test 18: music playlist facepile avatar model 2024-11-25 16:42:00 +01:00
a846b729e3
fix: disable Android client 2024-11-25 15:48:04 +01:00
ac8fbc3e67
fix: parsing lockup playlists with "MIX" instead of view count 2024-11-10 03:25:26 +01:00
870ff79ee0
fix: parsing videos using LockupViewModel (Music video recommendations) 2024-11-10 03:25:25 +01:00
badb3aef82
fix!: serde: lowercase Verification enum 2024-11-09 05:18:59 +01:00
342119dba6
fix: A/B test 17: channel playlists lockupViewModel 2024-11-09 05:11:41 +01:00
0919cbd0df
fix: fetch unlocalized player data to interpret errors correctly; regression introduced with v0.6.0 2024-11-09 03:08:00 +01:00
044094a4b7
feat!: replace TrackItem::is_video attr with TrackType enum; serde lowercase AlbumType enum for consistency 2024-11-09 02:55:59 +01:00
50010b7b08
feat: allow searching for YTM users 2024-11-09 00:36:42 +01:00
7b0499f6b7
fix: use same visitor data for fetching artist album continuations 2024-10-24 02:02:22 +02:00
512223fd83
fix: handle auth errors 2024-10-24 01:40:56 +02:00
62f8a9210c
feat: revoke OAuth token when logging out 2024-10-24 01:30:59 +02:00
9e2fe61267
feat: add user_auth_logout method 2024-10-24 00:46:45 +02:00
7984f9f13a
test: fix authenticated testing in CI 2024-10-24 00:42:19 +02:00
1cc3f9ad74
feat: add OAuth user login to access age-restricted videos 2024-10-23 23:02:32 +02:00
7c4f44d09c
feat!: generate random visitorData, remove RustyPipeQuery::get_context and YTContext<'a> from public API 2024-10-23 01:51:16 +02:00
9e835c8f38
feat!: remove TvHtml5Embed client as it got disabled 2024-10-23 01:42:02 +02:00
79a62816ff
fix: update channel order tokens 2024-10-23 00:30:18 +02:00
b589061a40
fix: fetch artist albums continuation 2024-10-22 23:56:59 +02:00
be18d89ea6
fix: skip serializing empty cache entries 2024-10-13 22:42:21 +02:00
71d3ec65dd
feat: add mobile client 2024-10-13 05:16:06 +02:00
e65f14556f
fix: A/B test 16 (pageHeaderRenderer on playlist pages) 2024-10-12 05:47:47 +02:00
f3f2e1d3ca
fix: ignore live tracks in YTM searches 2024-10-12 05:33:23 +02:00
ace0fae100
fix: prioritize visitor_data argument before opts 2024-10-12 05:29:04 +02:00
7972df0df4
fix: A/B test 15 (parsing channel shortsLockupViewModel) 2024-09-10 03:12:16 +02:00
3599acafef
feat!: remove startpage 2024-08-18 03:03:11 +02:00
ee3ae40395
fix: get TV client version 2024-08-17 03:26:20 +02:00
1cffb27cc0
feat!: add handle to ChannelItem, remove video_count 2024-08-17 03:05:57 +02:00
e6715700d9
feat!: update channel model, addd handle + video_count, remove tv/mobile banner 2024-08-17 02:44:47 +02:00
5a6b2c3a62
fix: parsing channels without banner 2024-08-17 00:42:47 +02:00
d0ae7961ba
fix: player_from_clients: fall back to TvHtml5Embed client 2024-08-17 00:21:47 +02:00
da39c64f30
fix: detect ip-ban error message 2024-08-10 16:26:43 +02:00
97904d7737
feat: change default player client order 2024-08-10 03:03:15 +02:00
9da3b25be2
fix: set tracing instrumentation level to Error 2024-08-10 00:06:56 +02:00
e608811e5f
feat!: add TV client 2024-07-30 01:55:24 +02:00
72b5dfec69
feat: add player_from_clients function to specify client order 2024-07-29 18:03:31 +02:00
8152ce6b08
fix: improve deobfuscator (support multiple nsig name matches, error if mapping all streams fails)
Since YouTube keeps changing the nsig function signature and a generic regex may match at multiple places, I changed the extraction logic to search for multiple matches if necessary and test the extracted deobfuscation functions.

I also found out that if the deobfuscation fails for all streams, fetching the player still returns a successful result with no streams, suggesting that the video is not available. So I changed the mapper to throw an ExtractionError if no streams are mapped successfully.
2024-07-29 14:45:52 +02:00
3d6de53545
feat: add http_client method to RustyPipe and user_agent method to RustyPipeQuery
For downloading, the http client as well as the user agent used by RustyPipe
should be available.
2024-07-27 02:36:45 +02:00
90540c6aaa
feat: add client_type to VideoPlayer, simplify MapResponse trait
The MapResponse trait needed too many arguments, so I added the MapRespCtx object.
Also added the client_type to the context, so it can be added to the extracted player data.
This is necessary to be able to download videos with the correct user agent
2024-07-27 02:30:24 +02:00
dd0565ba98
fix!: extracting nsig function, remove field throttled from Video/Audio stream model 2024-07-15 20:41:20 +02:00
12fe93084a
test: fix tests 2024-06-18 16:10:27 +02:00
94e8d24c68
refactor!: rename VideoItem/VideoPlayerDetails.length to duration for consistency 2024-06-16 22:42:11 +02:00