Commit graph

90 commits

Author SHA1 Message Date
ThetaDev
d0ae7961ba
fix: player_from_clients: fall back to TvHtml5Embed client 2024-08-17 00:21:47 +02:00
ThetaDev
da39c64f30
fix: detect ip-ban error message 2024-08-10 16:26:43 +02:00
ThetaDev
97904d7737
feat: change default player client order 2024-08-10 03:03:15 +02:00
ThetaDev
9da3b25be2
fix: set tracing instrumentation level to Error 2024-08-10 00:06:56 +02:00
ThetaDev
e608811e5f
feat!: add TV client 2024-07-30 01:55:24 +02:00
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
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
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
45b9f2a627
chore: fix clippy lints 2024-05-02 19:39:48 +02:00
ThetaDev
a8fb337fae
fix: remove Innertube API keys, update android player params 2024-04-16 15:18:29 +02:00
ThetaDev
1a22dc835a fix: handle age restricted channels
refactor! rename ExtractionError::VideoUnavailable to ExtractionError::Unavailable
2023-11-05 22:43:04 +01:00
ThetaDev
b25e9ebbb7 fix: send visitor data for YTM playlists 2023-09-28 01:00:00 +02:00
ThetaDev
1d1dcd622f feat: add tracing 2023-09-22 03:22:38 +02:00
ThetaDev
ac25490435 chore: fix clippy lints 2023-08-30 22:05:18 +02:00
ThetaDev
9d385e8e9b fix: player from android client 2023-07-30 17:00:47 +02:00
ThetaDev
32b4800b46 fix!: remove possible panic from client builder
fix: simplify integer divisions
2023-05-31 12:14:11 +02:00
ThetaDev
cc2cadc309 fix: add support for A/B test 7 (short date format) 2023-05-28 21:07:03 +02:00
ThetaDev
cbeb14f3fd fix: add pedantic lints 2023-05-13 02:40:26 +02:00
ThetaDev
aa5cd47dcd feat: add frameset 2023-05-11 17:18:58 +02:00
ThetaDev
86775ea95b feat: add audio track types 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
289b1cdbf4 refactor: restructure VideoUnavailable error
remove internal error types from public interface
2023-05-08 03:36:54 +02:00
ThetaDev
6ab7b2415a refactor: make DeobfError private 2023-05-08 01:51:27 +02:00
ThetaDev
25025ef701 refactor: remove bail macros 2023-05-04 22:18:38 +02:00
ThetaDev
7bcff13eb8 fix: use fixed testfiles location 2023-03-25 23:18:49 +01:00
ThetaDev
dc0eb1d4cc fix: use desktop client by default for fetching player 2023-02-13 14:43:09 +01:00
ThetaDev
ee5e82f6bb fix: instantiate deobfuscator in mapresponse fn
Reason: quickjs context is not Send
2023-02-08 12:29:08 +01:00
ThetaDev
79446bed1c fix: keep JS context when deobfuscating 2023-02-04 16:15:35 +01:00
ThetaDev
331a13568a fix: v1.67 clippy lints (inline format strings) 2023-01-27 21:19:08 +01:00
ThetaDev
be741d28ca feat: dont fetch artist playlist section 2023-01-25 21:05:52 +01:00
ThetaDev
92a358a079 refactor: use fancy-regex only for backtracking 2023-01-23 15:33:05 +01:00
ThetaDev
a706a7011b feat: redirect secondary YT channels to the YTM channel
Squashed commit of the following:

commit 88809265ead6eadfafab4b74091dd1af357b9577
Author: ThetaDev <t.testboy@gmail.com>
Date:   Sat Jan 21 22:16:23 2023 +0100

    feat: redirect secondary YT channels to the YTM channel

commit 02cc120912509f40f45da243ba5d37798b9ff411
Author: ThetaDev <t.testboy@gmail.com>
Date:   Mon Jan 9 23:57:18 2023 +0100

    add artists_no_tracks testfile
2023-01-21 22:18:25 +01:00
ThetaDev
1b94dc1f40 refactor!: rename title field to name 2022-12-27 23:28:25 +01:00
ThetaDev
f526ab38eb refactor!: refactored response models
doc: documented all public methods
2022-12-09 01:02:09 +01:00
ThetaDev
8097873fe1 refactor: use generic string arguments 2022-11-30 13:17:28 +01:00
ThetaDev
64d009615e fix: use path_macro in tests/codegen for cross-platform paths 2022-11-30 10:04:16 +01:00
ThetaDev
1abdd6f3e2 fix: lyrics not found error, no channel shorts cont 2022-11-22 12:37:07 +01:00
ThetaDev
68342cecab feat: add more extraction errors 2022-11-04 21:28:13 +01:00
ThetaDev
a706eb172e fix: stream ordering, downloader progress bar 2022-11-04 19:45:58 +01:00
ThetaDev
be0306e234 feat: add audio track volume/channel count, stream duration 2022-11-03 10:06:49 +01:00
ThetaDev
44da9c7cc5 feat: add album variants 2022-10-30 22:59:02 +01:00
ThetaDev
1c0c64a8bf feat: get YouTube visitor data 2022-10-28 18:49:10 +02:00
ThetaDev
9d0ae0e9c2 feat: add visitor data parameter 2022-10-24 07:45:57 +02:00
ThetaDev
b5f6b7a174 refactor: convert _or_bail macros to ok_or functions 2022-10-18 19:09:16 +02:00
ThetaDev
b22f6995cc feat: add URL resolver 2022-10-16 01:40:52 +02:00
ThetaDev
bbaa6cdb90 feat: add fallback to player query 2022-10-13 00:05:44 +02:00
ThetaDev
1fb4a2664e fix: moved integration tests,
fixed missing search video count,
error on missing search channel description snipped,
error on empty channel info link list,
2022-10-11 00:31:04 +02:00