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