Commit graph

100 commits

Author SHA1 Message Date
ThetaDev
6737512f5f
fix: A/B test 21: music album recommendations 2025-02-26 15:21:47 +01:00
ThetaDev
544782f8de
feat: add original album track count, fix fetching albums with more than 200 tracks 2025-02-26 15:21:47 +01:00
ThetaDev
0c94267d03
fix: only use cached potokens with min. 10min lifetime 2025-02-07 22:01:59 +01:00
ThetaDev
65cb4244c6
feat!: add userdata feature for all personal data queries (playback history, subscriptions) 2025-02-07 13:21:12 +01:00
ThetaDev
5acbf0e456
fix: use localzone crate to get local tz 2025-02-07 04:13:44 +01:00
ThetaDev
34f8e9b551
fix: compile error on windows 2025-02-07 04:13:44 +01:00
ThetaDev
a5a7be5b4e
fix: correct timezone offset for parsed dates, add timezone_local option 2025-02-07 04:13:44 +01:00
ThetaDev
3a2370b97c
feat: add timezone query option 2025-02-07 04:13:43 +01:00
ThetaDev
8297bf0234
update visitor data cache docs 2025-02-06 14:14:22 +01:00
ThetaDev
b72b501b6d
feat: add session po token cache 2025-02-06 00:48:37 +01:00
ThetaDev
b90a252a5e
feat: add support for rustypipe-botguard to get PO tokens 2025-02-05 15:56:14 +01:00
ThetaDev
b12f4c5d82
feat: add visitor data cache, remove random visitor data
Apparently YouTube can detect randomly generated visitor data and
prevents both the iOS and TV player from being fetched
(Error: Sign in to confirm you’re not a bot). Therefore the visitor
data generation code was removed and replaced with a cache that randomly
chooses from a selection of real visitor data.
2025-02-05 15:56:14 +01:00
ThetaDev
2b891ca078
fix: a/v streams incorrectly recognized as video-only 2025-01-22 01:59:01 +01:00
ThetaDev
af7dc10163
fix: parsing history dates 2025-01-18 05:51:41 +01:00
ThetaDev
0432477451
docs: update README 2025-01-16 03:45:12 +01:00
ThetaDev
5daad1b700
fix: A/B test 19: Music artist album groups reordered 2025-01-13 03:22:38 +01:00
ThetaDev
2af4001c75
feat: extract player DRM data 2025-01-13 03:22:37 +01:00
ThetaDev
97c3f30d18
fix: accept user-specific playlist ids (LL, WL) 2025-01-05 05:51:00 +01:00
ThetaDev
cf498e4a8f
feat: add cookies.txt parser, add cookie auth + history cmds to CLI 2025-01-05 05:51:00 +01:00
ThetaDev
63f86b6e18
fix: parsing numbers (it), dates (kn) 2025-01-05 05:50:59 +01:00
ThetaDev
320a8c2c24
feat: add history item dates, extend timeago parser 2025-01-05 05:50:59 +01:00
ThetaDev
14e399594f
feat: add functions to fetch a user's history and subscriptions 2025-01-05 05:50:58 +01:00
ThetaDev
69ef6ae51e
fix: replace deprecated call to time::util::days_in_year_month 2024-12-13 04:04:43 +01:00
ThetaDev
f5437aa127
fix: deobfuscation function extraction 2024-12-13 03:55:06 +01:00
ThetaDev
c4feff37a5
fix: lifetime-related lints 2024-12-01 22:29:24 +01:00
ThetaDev
7c4f44d09c
feat!: generate random visitorData, remove RustyPipeQuery::get_context and YTContext<'a> from public API 2024-10-23 01:51:16 +02:00
ThetaDev
b589061a40
fix: fetch artist albums continuation 2024-10-22 23:56:59 +02:00
ThetaDev
e65f14556f
fix: A/B test 16 (pageHeaderRenderer on playlist pages) 2024-10-12 05:47:47 +02:00
ThetaDev
e6715700d9
feat!: update channel model, addd handle + video_count, remove tv/mobile banner 2024-08-17 02:44:47 +02:00
ThetaDev
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
ThetaDev
041ce2d08f
fix: parsing audiobook type in European Portuguese 2024-06-27 03:20:00 +02:00
ThetaDev
45b9f2a627
chore: fix clippy lints 2024-05-02 19:39:48 +02:00
ThetaDev
b8825f9199
feat: add text formatting (bold/italic/strikethrough) 2024-04-03 03:28:13 +02:00
ThetaDev
339231924b
fix: update dictionary, fix parsing playlist dates in am and no 2024-02-13 18:38:58 +01:00
ThetaDev
d413cad8bb
fix: number parsing for as,bs,it, update testdata 2024-01-24 12:48:13 +01:00
ThetaDev
fd3e128f50
fix: remove shorts duration parsing 2024-01-18 16:03:15 +01:00
ThetaDev
342780ef68
fix: use url-safe base64, rename channel_info2 operation 2023-11-24 16:21:53 +01:00
ThetaDev
48ccfc5c06 fix: Arabic duration parsing 2023-11-15 01:42:04 +01:00
ThetaDev
a13262a273 fix: update dictionary 2023-11-15 01:15:08 +01:00
ThetaDev
bd0f3adba3 fix: remove dots from timeago tokens 2023-11-15 01:03:03 +01:00
ThetaDev
53cc9f1a27 fix: parsing Singhalese numbers 2023-11-04 02:03:17 +01:00
ThetaDev
452f765ffd fix: handling new podcast links 2023-11-04 01:14:54 +01:00
ThetaDev
ba06e2c8c8 fix: a/b test 10: channel about modal 2023-11-03 21:46:55 +01:00
ThetaDev
1ec1666d77 fix: tests, clippy lints 2023-10-08 01:04:52 +02:00
ThetaDev
abd3317a10 chore: fix clippy lints 2023-09-16 23:34:34 +02:00
ThetaDev
ac25490435 chore: fix clippy lints 2023-08-30 22:05:18 +02:00
ThetaDev
e2eda901b1 fix: add support for new channel about data model 2023-08-22 22:58:28 +02:00
ThetaDev
e5c51fe995 fix: extract visitor data from html page 2023-08-03 19:31:34 +02:00
ThetaDev
68926b9ca2 refactor: split music item mapping into multiple fns 2023-07-22 16:36:57 +02:00
ThetaDev
375c08d11b fix: playlist id regex 2023-07-04 12:47:05 +02:00