Commit graph

43 commits

Author SHA1 Message Date
ThetaDev
d36ba595da
fix: extraction error message 2024-08-08 15:10:55 +02:00
ThetaDev
c6bd03fb70
fix: add var to deobf fn assignment 2024-08-06 14:01:38 +02:00
ThetaDev
3c83e11e75
fix: nsig fn extraction 2024-07-31 21:46:32 +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
dd0565ba98
fix!: extracting nsig function, remove field throttled from Video/Audio stream model 2024-07-15 20:41:20 +02:00
ThetaDev
eecabffd18
tests: remove tokio_test::block_on 2024-03-16 19:21:30 +01:00
ThetaDev
339231924b
fix: update dictionary, fix parsing playlist dates in am and no 2024-02-13 18:38:58 +01: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
22e298ff98 fix: a/b test 8: parsing view count for tracks 2023-08-23 11:28:38 +02:00
ThetaDev
57628d1392 fix: adjust deobf helper object name regex 2023-08-16 01:52:39 +02:00
ThetaDev
5736d53c99 feat: add error reporting for deobf data extraction 2023-08-03 17:42:31 +02:00
ThetaDev
1bab2ef301 fix: deobfuscator not extracting array_str 2023-06-28 17:57:18 +02:00
ThetaDev
cbeb14f3fd fix: add pedantic lints 2023-05-13 02:40:26 +02:00
ThetaDev
6ab7b2415a refactor: make DeobfError private 2023-05-08 01:51:27 +02:00
ThetaDev
7bcff13eb8 fix: use fixed testfiles location 2023-03-25 23:18:49 +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
06aa677ef7 tests: use tokio_test::block_on() instead of test macro 2023-01-27 20:47:37 +01:00
ThetaDev
f94d8db4d0 feat: add logging for all operations
fix: music_artist: fetch visitor data only once
2023-01-27 19:49:16 +01:00
ThetaDev
92a358a079 refactor: use fancy-regex only for backtracking 2023-01-23 15:33:05 +01:00
ThetaDev
64d009615e fix: use path_macro in tests/codegen for cross-platform paths 2022-11-30 10:04:16 +01:00
ThetaDev
b5f6b7a174 refactor: convert _or_bail macros to ok_or functions 2022-10-18 19:09:16 +02:00
ThetaDev
4dfdb47cae fix: don't use a specific letter for the nsig function name regex 2022-10-10 22:25:20 +02:00
ThetaDev
a3e3269fb3 feat: add custom error types, remove anyhow 2022-10-08 14:36:37 +02:00
ThetaDev
fe5468313a fix: remove dead code 2022-09-27 21:43:12 +02:00
ThetaDev
05f609e247 fix: clippy warnings 2022-09-15 16:05:06 +02:00
ThetaDev
b52fd7349b refactored client API (query builder)
use VecLogError for player streams
2022-09-14 23:55:44 +02:00
ThetaDev
dda2211e04 refactored cache 2022-09-14 00:04:51 +02:00
ThetaDev
346406c1c8 feat: add timeago parser, playlist_cont 2022-09-01 20:16:00 +02:00
ThetaDev
5b8c3d646a feat: add playlist extraction
- replace original base.js with dummy
2022-08-30 00:31:00 +02:00
ThetaDev
2d302d763d fix: use js lexer for extracting deobf func
- better deobfuscation error handling
2022-08-25 18:02:32 +02:00
ThetaDev
3efe08088c fix deobfuscation after YouTube update 2022-08-13 21:15:52 +02:00
ThetaDev
beb1177a11 first successful download 2022-08-06 23:37:27 +02:00
ThetaDev
a98aa59446 improve mapper 2022-08-01 21:21:19 +02:00
ThetaDev
46730ee8fa add player data mapping 2022-08-01 19:50:38 +02:00
ThetaDev
db6ece6c61 implemented cache 2022-07-31 20:13:18 +02:00
ThetaDev
030fd9934e add player response model 2022-07-28 21:04:38 +02:00
ThetaDev
b85b9893a8 add client module 2022-07-25 12:30:16 +02:00
ThetaDev
7447d2394b working deobfuscator 2022-07-23 23:51:44 +02:00
ThetaDev
0acf8a9fb9 refactored, started with get_player_js (TEMP) 2022-07-21 17:13:50 +02:00