Commit graph

66 commits

Author SHA1 Message Date
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
0432477451
docs: update README 2025-01-16 03:45:12 +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
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
f5437aa127
fix: deobfuscation function extraction 2024-12-13 03:55:06 +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
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
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
d413cad8bb
fix: number parsing for as,bs,it, update testdata 2024-01-24 12:48:13 +01:00
ThetaDev
342780ef68
fix: use url-safe base64, rename channel_info2 operation 2023-11-24 16:21:53 +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
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
ThetaDev
32b4800b46 fix!: remove possible panic from client builder
fix: simplify integer divisions
2023-05-31 12:14:11 +02:00
ThetaDev
0cd018e37a fix: add dictionary support for short timeago strings 2023-05-31 01:41:46 +02:00
ThetaDev
cca9838b7e fix: playlist id regex 2023-05-28 19:28:33 +02:00
ThetaDev
c8e2d342c6 feat: add support for new artist discography page 2023-05-14 03:05:24 +02:00
ThetaDev
bf80db8a9a fix!: parse full video info from playlist items, remove PlaylistVideo model 2023-05-13 23:10:05 +02:00
ThetaDev
54f42bcb54 fix: add more markdown escape chars, change RichText enum 2023-05-13 15:59:41 +02:00
ThetaDev
a0819ac72c feat: add richtext to markdown conversion 2023-05-13 03:20:48 +02:00
ThetaDev
cbeb14f3fd fix: add pedantic lints 2023-05-13 02:40:26 +02:00
ThetaDev
81280200f7 fix: add channel playlist ids to regex 2023-05-13 00:11:22 +02:00
ThetaDev
e184341625 fix: improve language docs + string parsing 2023-05-11 17:18:58 +02:00
ThetaDev
3a75ed8610 feat!: add channel_videos_tab, channel_videos_order,
remove channel_shorts, channel_livestreams
fix: parsing video types and short durations
2023-05-11 17:18:14 +02:00
ThetaDev
0008e305c2 refactor: add iterators for parsing tokens 2023-05-07 18:00:49 +02:00
ThetaDev
b3331b36a7 Merge branch 'intl-tests' 2023-05-07 15:06:27 +02:00
ThetaDev
2241223c9f refactor!: made timeago module private 2023-05-06 21:24:11 +02:00
ThetaDev
19781eab36 fix: improve number parsing, add number_nd_tokens
add dictionary overrides
2023-05-06 17:36:36 +02:00
ThetaDev
97492780c6 fix: parsing is_ytm for playlists 2023-05-06 03:17:43 +02:00
ThetaDev
e96d494505 refactor: remove by_char from dict 2023-05-06 01:37:07 +02:00
ThetaDev
72d817edd7 fix: update large number samples 2023-05-06 01:22:13 +02:00
ThetaDev
bb396968dc tests: completed for all languages
fix: parsing search videos without duration
2023-05-05 15:18:37 +02:00
ThetaDev
25025ef701 refactor: remove bail macros 2023-05-04 22:18:38 +02:00
ThetaDev
b88faa9d05 tests: run tests with different lang settings
fix: parsing subscriber count on channel search itms
fix: add warnings for all date and numstr parsing
fix: error parsing search suggestions
2023-05-04 21:44:10 +02:00
ThetaDev
6a99540ef5 fix: playlist ID regex, tests 2023-05-04 17:16:04 +02:00
ThetaDev
ea80f8463d refactor: remove month_from_n function 2023-04-20 22:01:24 +02:00
ThetaDev
7bcff13eb8 fix: use fixed testfiles location 2023-03-25 23:18:49 +01:00
ThetaDev
331a13568a fix: v1.67 clippy lints (inline format strings) 2023-01-27 21:19:08 +01:00
ThetaDev
f7fbf40721 feat: add id validators 2023-01-23 22:32:51 +01:00