Commit graph

480 commits

Author SHA1 Message Date
ThetaDev
275a92df2d fix: parsing videos using LockupViewModel (Music video recommendations) 2024-11-10 03:25:25 +01:00
ThetaDev
95c45838cd fix!: serde: lowercase Verification enum 2024-11-09 05:18:59 +01:00
ThetaDev
70e13fa6fc fix: A/B test 17: channel playlists lockupViewModel 2024-11-09 05:11:41 +01:00
ThetaDev
40811a89e5 fix: fetch unlocalized player data to interpret errors correctly; regression introduced with v0.6.0 2024-11-09 03:08:00 +01:00
ThetaDev
957fa22f77 feat!: replace TrackItem::is_video attr with TrackType enum; serde lowercase AlbumType enum for consistency 2024-11-09 02:55:59 +01:00
ThetaDev
7a62936392 feat: allow searching for YTM users 2024-11-09 00:36:42 +01:00
ThetaDev
4b7db80afc fix: use same visitor data for fetching artist album continuations 2024-10-24 02:02:22 +02:00
ThetaDev
987d007cf1 fix: handle auth errors 2024-10-24 01:40:56 +02:00
ThetaDev
2040fd4e0a feat: revoke OAuth token when logging out 2024-10-24 01:30:59 +02:00
ThetaDev
1dcde78053 feat: add user_auth_logout method 2024-10-24 00:46:45 +02:00
ThetaDev
1eecde4d6b test: fix authenticated testing in CI 2024-10-24 00:42:19 +02:00
ThetaDev
8cc227077b feat: add OAuth user login to access age-restricted videos 2024-10-23 23:02:32 +02:00
ThetaDev
448657bcb5 feat!: generate random visitorData, remove RustyPipeQuery::get_context and YTContext<'a> from public API 2024-10-23 01:51:16 +02:00
ThetaDev
43805aca66 feat!: remove TvHtml5Embed client as it got disabled 2024-10-23 01:42:02 +02:00
ThetaDev
ed7c5fd3bb fix: update channel order tokens 2024-10-23 00:30:18 +02:00
ThetaDev
93dbd0d20c fix: fetch artist albums continuation 2024-10-22 23:56:59 +02:00
ThetaDev
bef2fc3df6 fix: skip serializing empty cache entries 2024-10-13 22:42:21 +02:00
ThetaDev
ee76cee8d1 feat: add mobile client 2024-10-13 05:16:06 +02:00
ThetaDev
4544536a75 fix: A/B test 16 (pageHeaderRenderer on playlist pages) 2024-10-12 05:47:47 +02:00
ThetaDev
11e25c8e02 fix: ignore live tracks in YTM searches 2024-10-12 05:33:23 +02:00
ThetaDev
a8c7823d44 fix: prioritize visitor_data argument before opts 2024-10-12 05:29:04 +02:00
ThetaDev
c5e695e297 feat: add RustyPipe version constant 2024-09-10 03:15:41 +02:00
ThetaDev
a7fb0d641a fix: A/B test 15 (parsing channel shortsLockupViewModel) 2024-09-10 03:12:16 +02:00
ThetaDev
4e32728c02 fix: show docs.rs feature flags 2024-08-18 03:25:02 +02:00
ThetaDev
4e53247e9c feat!: remove startpage 2024-08-18 03:03:11 +02:00
ThetaDev
cf0eb81002 fix: get TV client version 2024-08-17 03:26:20 +02:00
ThetaDev
554529d696 feat!: add handle to ChannelItem, remove video_count 2024-08-17 03:05:57 +02:00
ThetaDev
b715ae18c4 feat!: update channel model, addd handle + video_count, remove tv/mobile banner 2024-08-17 02:44:47 +02:00
ThetaDev
0077128d77 fix: parsing channels without banner 2024-08-17 00:42:47 +02:00
ThetaDev
9f16a63fe3 fix: player_from_clients: fall back to TvHtml5Embed client 2024-08-17 00:21:47 +02:00
ThetaDev
0b8cc6ac86 fix: detect ip-ban error message 2024-08-10 16:26:43 +02:00
ThetaDev
1a62471ad7 feat: change default player client order 2024-08-10 03:03:15 +02:00
ThetaDev
1bd49fc53d fix: set tracing instrumentation level to Error 2024-08-10 00:06:56 +02:00
ThetaDev
df2ecf177d fix: extraction error message 2024-08-08 15:10:55 +02:00
ThetaDev
9956048377 fix: make Verification enum exhaustive 2024-08-08 14:56:39 +02:00
ThetaDev
171b3cb8d1 feat: add YtEntity trait to YouTubeItem and MusicItem 2024-08-08 03:22:04 +02:00
ThetaDev
b609edd004 fix: add var to deobf fn assignment 2024-08-06 14:01:38 +02:00
ThetaDev
edab09184a fix: nsig fn extraction 2024-07-31 21:46:32 +02:00
ThetaDev
f27d0492cb feat!: add TV client 2024-07-30 01:55:24 +02:00
ThetaDev
b2839f773d feat: add player_from_clients function to specify client order 2024-07-29 18:03:31 +02:00
ThetaDev
9517de2dcd 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
ThetaDev
d11a850fdc fix: make nsig_fn regex more generic 2024-07-27 03:23:09 +02:00
ThetaDev
535ae3041c feat!: make StreamFilter use Vec internally, remove lifetime 2024-07-27 03:21:48 +02:00
ThetaDev
56875b99dc feat: add channel_id and channel_name getters to YtEntity trait 2024-07-27 02:41:05 +02:00
ThetaDev
c51a273513 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
ThetaDev
1934592ab8 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
ThetaDev
36d6061a27 fix!: extracting nsig function, remove field throttled from Video/Audio stream model 2024-07-15 20:41:20 +02:00
ThetaDev
b3a0d7af93 fix: parsing audiobook type in European Portuguese 2024-06-27 03:20:00 +02:00
ThetaDev
358307420a test: fix tests 2024-06-18 16:10:27 +02:00
ThetaDev
1d9492b207 feat: add YtEntity trait 2024-06-16 22:57:55 +02:00