ThetaDev
72b5dfec69
feat: add player_from_clients function to specify client order
2024-07-29 18:03:31 +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
fb7af3b966
fix: make nsig_fn regex more generic
2024-07-27 03:23:09 +02:00
ThetaDev
821984bbd5
feat!: make StreamFilter use Vec internally, remove lifetime
2024-07-27 03:21:48 +02:00
ThetaDev
bbbe9b4b32
feat: add channel_id and channel_name getters to YtEntity trait
2024-07-27 02:41:05 +02:00
ThetaDev
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
ThetaDev
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
ThetaDev
dd0565ba98
fix!: extracting nsig function, remove field throttled from Video/Audio stream model
2024-07-15 20:41:20 +02:00
ThetaDev
041ce2d08f
fix: parsing audiobook type in European Portuguese
2024-06-27 03:20:00 +02:00
ThetaDev
12fe93084a
test: fix tests
2024-06-18 16:10:27 +02:00
ThetaDev
792e3b31e0
feat: add YtEntity trait
2024-06-16 22:57:55 +02:00
ThetaDev
94e8d24c68
refactor!: rename VideoItem/VideoPlayerDetails.length to duration for consistency
2024-06-16 22:42:11 +02:00
ThetaDev
401d4e8255
feat: add UnavailabilityReason: IpBan
2024-06-16 22:24:59 +02:00
ThetaDev
da1d1bd2a0
feat: make get_visitor_data() public
2024-06-16 02:18:04 +02:00
ThetaDev
29a7db231a
test: fix asserts: client version parts, iOS client bitrate
2024-05-17 18:27:24 +02:00
ThetaDev
45b9f2a627
chore: fix clippy lints
2024-05-02 19:39:48 +02:00
ThetaDev
8fbd6b95b6
fix: parsing error when no music_related content available
2024-04-18 19:50:06 +02:00
ThetaDev
a8fb337fae
fix: remove Innertube API keys, update android player params
2024-04-16 15:18:29 +02:00
ThetaDev
6c41ef2fb2
feat: prefix chip-style web links (social media) with the service name
2024-04-12 12:33:36 +02:00
ThetaDev
b8825f9199
feat: add text formatting (bold/italic/strikethrough)
2024-04-03 03:28:13 +02:00
ThetaDev
b0331f7250
fix: parse new comment model ( A/B#14 frameworkUpdates)
2024-04-02 01:49:43 +02:00
ThetaDev
348c8523fe
revert: "fix: improve VecLogErr messages" (leads to infinite loop)
...
This reverts commit 9a652d851f .
2024-04-02 01:49:40 +02:00
ThetaDev
180dd9891a
fix: correctly parse subscriber count with new channel header
...
It looks like A/B test 12 has changed the text field order for the subscriber count slightly. Support was added to correctly parse both variants
2024-03-26 21:19:51 +01:00
ThetaDev
be314d57ea
chore: update user agent (FF 115.0)
2024-03-26 20:03:09 +01:00
ThetaDev
a81c3e8336
fix: parsing music details with video description tab
2024-03-24 02:34:53 +01:00
ThetaDev
eecabffd18
tests: remove tokio_test::block_on
2024-03-16 19:21:30 +01:00
ThetaDev
95ab7c91c6
feat!: add rich text description to playlists and albums
...
fix: panic when parsing new music album/playlist layout
2024-03-09 14:34:58 +01:00
ThetaDev
76c27f0324
fix: add support for A/B-13 (2-column layout for music playlists/albums)
2024-02-29 02:54:40 +01:00
ThetaDev
339231924b
fix: update dictionary, fix parsing playlist dates in am and no
2024-02-13 18:38:58 +01:00
ThetaDev
5275170f9a
fix: a/b test 12: parsing new channel page header
2024-01-29 17:09:42 +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
f618add384
chore: disable pedantic lints
2024-01-18 13:44:11 +01:00
ThetaDev
9ecf7eff74
chore: fix clippy lints
2024-01-18 13:23:56 +01:00
ThetaDev
9e574d733d
fix: use new cookie consent token
2023-12-22 23:31:50 +01:00
ThetaDev
31a8fcf2fb
fix: search for sensitive topics
2023-12-21 21:22:38 +01:00
ThetaDev
deeffacc1c
feat: use official date serializer, fix test
2023-12-06 21:53:35 +01:00
ThetaDev
9a652d851f
fix: improve VecLogErr messages
2023-11-24 17:40:05 +01:00
ThetaDev
9d243fa0ad
fix: parsing text components with empty navigation endpoints
2023-11-24 17:22:35 +01:00
ThetaDev
342780ef68
fix: use url-safe base64, rename channel_info2 operation
2023-11-24 16:21:53 +01:00
ThetaDev
22deccb408
feat: add is_empty method to richtext
2023-11-21 13:29:46 +01:00
ThetaDev
8458d878e7
refactor: generic search API
2023-11-18 01:19:47 +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
53a8ec680a
fix: support podcast episodes in new videos
2023-11-13 13:53:29 +01:00
ThetaDev
596b9c4d4a
fix: remove serde_with json feature
2023-11-13 13:04:46 +01:00
ThetaDev
1a22dc835a
fix: handle age restricted channels
...
refactor! rename ExtractionError::VideoUnavailable to ExtractionError::Unavailable
2023-11-05 22:43:04 +01:00
ThetaDev
b145080631
add test for a/b11
2023-11-05 16:55:42 +01:00
ThetaDev
4d124c6d98
fix: a/b test 11: parsing like count with new data model
2023-11-04 02:47:33 +01:00