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