Commit Graph

742 Commits

Author SHA1 Message Date
Luan
458f881043 feat(StreamingInfo): Label Voice Boost audio streams (#1105)
* feat(StreamingInfo): Label Voice Boost audio streams

* chore(StreamingInfoOptions): Clarify vb desc a bit

* fix(StreamingInfoOptions): Fix `label_original` description

* chore: lint
2025-12-27 15:29:08 -03:00
Luan
769721c193 feat(Format): Add support for Voice Boost & Super Resolution formats (#1092) 2025-11-15 19:42:31 -03:00
Luan
e140944dd9 chore(JsAnalyzer.ts): Add a comment for clarity
+ fix the other comment
2025-10-27 02:43:06 -03:00
LostMyCode
ca05eab0c3 fix(FormatUtils#download): Add missing await for format.decipher() call in download function
The format.decipher() method returns a Promise<string>, but was being called without await. This could cause the format_url variable to be a Promise object instead of the expected URL string, leading to errors in subsequent fetch operations.
2025-10-16 08:03:38 -03:00
Luan
d4e4683d94 feat(Session): Add fail_fast option (#1066) 2025-10-12 14:15:00 -03:00
Luan
7eb062bf49 chore: fix linter 2025-10-12 13:15:56 -03:00
Luan
41b810629b chore: Update auto-generated file references to new script location 2025-10-12 12:01:09 -03:00
Dave Nicolson
f738a173fc feat(parser): Add FormPopup.ts parser class (#1057)
* Update src/parser/classes/FormPopup.ts

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2025-10-12 10:30:24 -03:00
Dave Nicolson
3d6ed1def9 feat(parser): Add Form.ts parser class (#1056)
* feat(parser): Add Form.ts parser class

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2025-10-12 10:27:01 -03:00
Dave Nicolson
6c127199ba feat(history): Load additional watch history pages (#1055) 2025-10-12 10:00:35 -03:00
Luan
25d0876b91 refactor(Player)!: Use AST-based JS extraction with side-effect safe code emission (#1052)
* chore(deps): Add `meriyah`

* feat(utils): Implement AST-based JS extractors

* chore(utils): Remove old ast walker code

* fix(Player): Migrate js extraction logic

* chore(JsExtractor): Fix typo in tsdoc

* perf(JsAnalyzer): Simplify main AST analysis logic

* fix(JsAnalyzer): Change `break` to `return` in AST matching logic

* chore: Update docs

* chore: Don't export `PlayerInitializationOptions`

* chore(evaluate): Update error message to include doc link

* perf: Use a `for-loop` to find iife
2025-10-12 09:08:51 -03:00
Fijxu
81592ca9e2 chore: Update User-Agents (#1058)
YouTube.js has been using the same user agents for 3 years.
Maybe YouTube doesn't care that much about the User-Agent, but keeping
them updated is good anyways.
2025-10-12 07:33:19 -03:00
Andrew S
977b13cc23 refactor: Use async/await for the javascript evaluator (#1047)
Allows for `Platform.shim.eval` to be asynchronous for custom evaluators. EG: using an online service to evaluate the javascript code in contexts where code interpreters are prohibited.
2025-10-09 14:19:17 -03:00
absidue
035d16dd6d refactor(node): Replace undici dependency with built-in fetch (#1045) 2025-10-02 07:01:21 -03:00
absidue
ee9c184eeb feat(protos): Add playlistTitle field to NextParams (#1040) 2025-09-17 19:50:20 -03:00
absidue
a2c3774e9a fix(Player): Store the full library version in cache entries (#1032) 2025-09-12 16:10:19 -03:00
absidue
68a6af9b2c feat(parser): Add ListView, ListItemView and SubscribeButtonView (#1025) 2025-09-11 15:51:57 -03:00
absidue
46c2f6c6c1 refactor: Import version, bugs URL and repo URL directly from package.json (#1004) 2025-09-11 15:49:48 -03:00
absidue
95976de115 perf: Replace uses of ObservableArray#get with Array#find (#1013) 2025-09-11 15:45:16 -03:00
absidue
8be677adec fix(types): Parser.parseArray always returns an ObservedArray (#1014) 2025-09-11 15:43:58 -03:00
absidue
aa7cf561a7 feat(parser): Parse badges in ContentMetadataView (#1017) 2025-09-11 15:43:37 -03:00
absidue
bac896501b fix(parser): LockupMetadataView.image can also be an AvatarStackView (#1026) 2025-09-11 15:43:05 -03:00
absidue
3ea2815aba fix(Player): Fix global variable extraction in the deciphering code (#1029) 2025-09-11 15:42:27 -03:00
absidue
cb87cc1cae fix(Innertube): Handle redirects in getChannel() (#1002) 2025-07-22 16:49:35 -03:00
Luan
4ae0cc5c52 refactor(BinarySerializer): Move cache serialization to its own module 2025-07-21 05:29:40 -03:00
Luan
0091f51dd2 feat(Parser): Add HypePointsFactoid node 2025-07-18 12:02:26 -03:00
Brahim Hadriche
b6386e4027 feat(Innertube)!: Add GetVideoInfoOptions to support content bound PoTokens (#994)
* Add GetVideoInfoOptions to support content bound PoTokens

* feat: Add options arg to other client modules

* chore(Session): Update session WebPO description

* fix(Kids): Make options parameter optional

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-07-18 11:03:23 -03:00
Dave Nicolson
42bcf197bc feat(Parser): Add ToggleFormField node (#902)
* Add ToggleFormField node

* chore: clean up & lint

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-07-18 10:40:22 -03:00
lovegaoshi
8f81d54e40 chore(ReactNative): Change deprecated assert to with (#972) 2025-07-18 10:27:09 -03:00
ChunkyProgrammer
dfaf1501c9 fix(Channel): Use new URL for community tab (#986) 2025-07-18 10:23:59 -03:00
shinray
bc386db6ba feat(Parser): Add SectionHeaderView and GridShelfView (#988)
* feat(parser): add sectionheaderview and gridshelfview

* style: direct import instead of from ytnodes namespace

* chore: clean up

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-07-18 10:23:15 -03:00
Fea
e94ef3748e feat(Parser): Add DismissableDialog and DismissableDialogContentSection nodes (#997)
* feat(Parser): Add `DismissableDialogContentSection` node

* feat(Parser): Add `DismissableDialog` node

* chore: clean up

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-07-18 10:06:05 -03:00
ChunkyProgrammer
e9d6483e5a fix(Innertube#getPost): Update protobuf schema (#987)
* Update get post

* Remove leftover debug code
2025-07-18 09:59:31 -03:00
Ankush Sarkar
64f995585f fix(Artist): getAllSongs not finding target shelf (#999) 2025-07-18 09:55:45 -03:00
Luan
3fcf987aec fix(MediaInfo): Remove unused parameters from toDash method 2025-07-18 08:20:54 -03:00
Luan
c16feee065 refactor(HTTPClient): Send configInfo only if using WEB 2025-06-22 20:01:07 -03:00
Ryuu Mitsuki
638697696f feat(parser-classes): Add CompositeVideoPrimaryInfo parser class (#984)
* feat(parser-classes): Add `CompositeVideoPrimaryInfo` parser class

* refactor(parser-classes): Remove `data` property from instance class

* chore: shorten import path

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-06-22 14:59:15 -03:00
Luan
7ae4ccf70a feat(DashManifest): Add DRM infos to MPD
Required in newer versions of Shaka (for playback of protected content).
2025-06-21 03:58:44 -03:00
Luan
76504c0d08 fix(Session): Incorrect session client logic 2025-06-19 13:01:16 -03:00
ChunkyProgrammer
d6f13e20ac feat(CommentsView): parse voice_reply_transcript (#981)
* Parse the VoiceReplyContainer instead of just parsing the text
2025-06-17 13:26:50 -03:00
Luan
e1650e1297 refactor: Clean up HTTPClient code 2025-06-08 13:45:03 -03:00
Luan
b15f623dab fix(Constants): Add TVHTML5_SIMPLY to CLIENT_NAME_IDS 2025-06-08 13:44:01 -03:00
Fijxu
689fb0b90e fix: add missing TV_SIMPLY parts on some files (#975) 2025-06-08 12:42:44 -03:00
Luan
056b12c3db chore: merge 2025-06-08 09:51:21 -03:00
Luan
8cf658151f feat: Add TV_SIMPLY client 2025-06-08 09:51:06 -03:00
Konstantin
065e9a4e7c feat(MediaInfo): Add updateWatchTime (#874)
* feat: add watch time update function for VideoInfos classes

* chore: Improve naming

* chore: fix ts error

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-06-08 08:25:54 -03:00
lovegaoshi
bb022e8285 fix(Session): Initialize client version based on provided client name (#971)
* fix(Session): Fix client init when using cached sessions

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-06-08 07:51:53 -03:00
Suhun Han
876e94ad03 feat(VideoInfo): implement MacroMarkersListEntity parser for heatmap (#973)
* refactor(video-info): rewrite heat-map extraction

* fix(parser): Ensure heatmap mutations are processed only if mutations exist

---------

Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-06-08 07:32:50 -03:00
absidue
698121ab8f fix: Handle CommandExecutorCommand in NavigationEndpoint.call (#968)
Co-authored-by: Luan <luan.lrt4@gmail.com>
2025-06-08 07:12:26 -03:00
Luan
561e60b934 feat(StreamingInfoOptions)!: Add is_sabr option (#974)
Returns a manifest suitable for use in SABR player implementations.
2025-06-08 07:02:10 -03:00