Basil
47b1df7529
fix(ThumbnailBadgeView): Parse icon ( #1174 )
2026-05-29 09:20:26 -03:00
LuanRT
853a36307b
feat(Parser): Add HypeFanCreditsSectionView
2026-05-12 19:11:35 -03:00
Luan
f748b8b362
feat(Search): Add support for refinement chips ( #1167 )
...
Also, this removes the old code used for refinement cards. Doesn't look like YouTube uses them anymore.
2026-05-12 17:27:55 -03:00
Luan
430fc70888
refactor(cache): Get rid of custom LZW compression ( #1168 )
...
It's just buggy and not very efficient, and I can't realistically improve it. Compression algorithms are complicated and would require quite a bit of effort to get right...
fflate is tiny, works anywhere, and is more efficient.
Also, here is an interesting article about compression from fflate's author : https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad
2026-05-12 17:25:59 -03:00
Luan
faaf5fc5c1
fix(Channel): Add support for new feed filter nodes ( #1163 )
...
* feat(Feed): Update `getVideosFromMemo` to support `LockupView` nodes
* feat(parser): Add `DownloadListItemView` renderer parser
* feat(FilterableFeed): Add support for `ChipView` nodes
* feat(Channel): Add support for new feed filter system
Honestly the whole Channel class needs a cleanup. Maybe I'll do that at some point in the future.
2026-05-04 21:04:15 -03:00
LuanRT
cf5412986b
feat(ListView): Add some missing fields
2026-03-20 17:25:42 -03:00
LuanRT
37a4808693
feat(parser): Add ShowSheetCommand and SheetView
2026-03-20 15:02:53 -03:00
LuanRT
e9bc0d00dd
chore(ChipBarView): Import RendererContext directly
2026-03-19 11:24:05 -03:00
LuanRT
39158838f1
feat(ChipBarView): Parse renderer_context
2026-03-19 11:23:05 -03:00
LuanRT
32623de485
feat(ChipView): Improve types
2026-03-19 11:11:00 -03:00
Ian Brown
2a33fbc85f
feat(Parser): Add ThumbnailOverlayTitleView and PageIndicatorView classes ( #1120 )
...
Add two missing parser classes that were being JIT-generated at runtime:
- ThumbnailOverlayTitleView: Displays title/subtitle overlays on thumbnails
- PageIndicatorView: Tracks pagination state in carousels (indicator count and selected index)
These are encountered when parsing Mix/Playlist responses.
2026-03-16 16:44:35 -03:00
Dave Nicolson
7e10ac9873
fix(history): Add support for LockupView content ( #1075 )
...
* fix(history): Add support for LockupView content
* Use YTNode is() method
2026-03-16 13:18:50 -03:00
Dave Nicolson
5c7b1ba25d
fix(FlexibleActionsView): Update ActionRow actions type ( #1129 )
2026-03-16 13:17:22 -03:00
Luan
8130f808d9
fix(parser): Resolve some old parser issues ( #1154 )
...
Should reduce parser warning spam quite a bit.
Closes #653
Closes #781
Closes #1121 (minus unrelated pot issue)
Closes #978
Closes #1053
Closes #695
Closes #1098
2026-03-16 13:14:09 -03:00
LuanRT
b8d15cb366
chore(parser): Add 'GenAiFeedbackFormView' to ignored list
2026-03-16 11:26:32 -03:00
Luan
da1fac2d29
feat(parser): Add VideoSummaryContentView and VideoSummaryParagraphView ( #1153 )
...
* feat(parser): Add `VideoSummaryContentView` and `VideoSummaryParagraphView`
* fix(ExpandableMetadata): Update `expanded_content` type
2026-03-16 11:22:00 -03:00
LuanRT
543b94c3e4
fix(ChannelSubMenu): Handle potential undefined values
2026-03-16 10:11:02 -03:00
LuanRT
19b33ea36e
fix(ContentMetadataView): metadataRows can be undefined
2026-03-16 10:10:36 -03:00
Luan
d8558afd58
fix(Player): Add support for new variants ( #1152 )
...
* fix(JsAnalyzer): Add prototype alias tracking, improve scoping, and add es6 class support
* fix(JsExtractor): Allow `ClassExpression` and extract prototype assignments
* feat(helpers): Misc changes & improve argument handling
* fix(matchers): Add new nsig matcher
* feat(utils): Add `NSIG_PROCESSOR_FN`
* fix(Player): Update player URL and integrate new nsig processing
* chore(Constants): Update TV client version to 7.20260311.12.00 (ignore, unrelated) - Unrelated. Updated it for testing some things.
* chore(JsAnalyzer): Remove commented debug log (oops...)
* chore(JsExtractor): Correct typo in comment
* chore: rename some stuff
* chore: lint
* chore: Simplify code in parseFunctionArguments
2026-03-16 07:16:22 -03:00
PikachuEXE
5da9dd37a7
fix(Parser): Fix ChannelSubMenu parsing ( #1144 )
2026-03-15 23:41:55 +01:00
Cameron
c712c546c3
fix(Session): Add the ID for ANDROID_VR, remove the mistaken ANDROID_TV key. ( #1151 )
2026-03-15 10:07:48 +01:00
Cameron
f9bd5d0e8d
feat(Session): Add the ANDROID_VR client ( #1149 )
2026-03-14 10:29:26 +01:00
lovegaoshi
b989260d0c
chore(constants): update android client version ( #1145 )
2026-03-04 06:47:36 +01:00
absidue
e83039637e
feat(Search)!: Update search filters to match YouTube changes ( #1136 )
2026-02-08 23:47:34 +01:00
absidue
3b11b1c986
chore(constants): Update some hardcoded client versions
2026-02-08 23:00:37 +01:00
Dave Nicolson
3df4c61bd7
fix(Innertube): getChannel() if subscribed ( #1128 )
2026-01-31 22:58:12 +01:00
absidue
7c144ee013
fix(Innertube)!: Remove getTrending as YouTube removed the trending feed ( #1114 )
2026-01-30 19:27:31 +01:00
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