Commit Graph

495 Commits

Author SHA1 Message Date
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
Ankush Sarkar
64f995585f fix(Artist): getAllSongs not finding target shelf (#999) 2025-07-18 09:55:45 -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
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
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
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
Dave Nicolson
ff1aa67b8b feat(Parser): Add OpenOnePickAddVideoModalCommand node (#901) 2025-04-20 10:25:50 -03:00
Luan
dce51cdc4a feat(RichShelf): Add icon_type property
Useful for identifying Short content shelves.
2025-04-16 15:59:00 -03:00
Luan
98a2ba8c46 chore(parser): Fix types 2025-04-16 14:16:17 -03:00
Luan
a1fd51fbb5 chore: Copy over some types from youtubei-dts
Needed for hot config retrieval.
2025-04-16 14:09:32 -03:00
Luan
458c4900d7 feat(parser): Parse targetId
Used by the UI to identify interactions/commands sent by nodes deep into the response (ChipCloudChip, Button, etc..)
2025-04-13 16:47:46 -03:00
Luan
f8690118c3 feat(MultiPageMenuNotificationSection): Add notification_section_title 2025-04-11 17:10:55 -03:00
absidue
14ea875c67 chore: Inline some trivial private methods (#946) 2025-04-06 13:37:57 -03:00
Luan
393c243495 chore(ButtonView): Fix typo 2025-04-05 06:22:51 -03:00
Luan
df6b0cccc4 refactor: Update some nodes to use AccessibilityData.ts 2025-04-05 05:44:11 -03:00
Luan
a95f52a477 feat(Text): Parse accessibility data
+ Clean up.
2025-04-05 05:09:34 -03:00
Luan
d8f731b2fa feat(RichRenderers): Parse more UI elements
YouTube is currently A/B testing a new You/Library page that uses RichShelf nodes instead of Shelf. There are no major visual changes, other than the page being much more responsive due to how RichShelf is styled.
2025-04-05 03:40:11 -03:00
Luan
cbb2535b24 feat(MusicImmersiveHeader): Parse buttons and menu 2025-03-24 10:49:54 -03:00
absidue
216cb3139a chore(parser): Pass playlist_item_data as a parameter instead of a private property (#914) 2025-03-20 07:47:35 -03:00
Luan
923e9c28e3 feat: Add AccessibilityContext and CommandContext classes + improve type definitions and parsing logic across multiple nodes 2025-03-03 03:22:27 -03:00
absidue
00c199ac69 fix(Format): Parse xtags from protobuf to support SABR-only responses (#909) 2025-02-27 03:30:43 -03:00
Dave Nicolson
2b4219959c fix(Playlist): is_editable (#894)
* Fix is_editable

* Add can_reorder
2025-02-21 19:07:56 -03:00
Dave Nicolson
b731db86c5 fix(DialogView): Type mismatch (#897) 2025-02-21 19:04:21 -03:00
Luan
a3fafe2f79 fix(music#getPlaylist): Handle ContinuationItem nodes
Closes #904
2025-02-21 18:52:34 -03:00
Luan
ca7c3164e1 chore(AnimatedThumbnailOverlayView): Refactor thumbnail handling to use Thumbnail class 2025-02-21 18:15:29 -03:00
Izak Filmalter
0cb92d9620 feat(parser): Add AnimatedThumbnailOverlayView (#903)
* Add AnimatedThumbnailOverlayView parser.

* Update nodes.ts
2025-02-17 11:41:17 -03:00
ChunkyProgrammer
b3a4862151 feat(Channel): Add getCourses method (#883) 2025-02-11 06:10:50 -03:00
absidue
75d39e7afb chore(parser): Simplify d0d48bf525 (#888) 2025-02-08 06:00:03 -03:00
absidue
0e869020db refactor: Remove internal uses of the .first() and .matchCondition() helpers (#889) 2025-02-08 05:55:39 -03:00
Luan
d0d48bf525 feat(CommentView): Parse prepareAccountCommand 2025-02-05 15:02:48 -03:00
Luan
3f960effa2 fix(Parser): Add UpdateEngagementPanelContentCommand
This command is sometimes used to open the Transcript panel.
2025-02-05 06:55:13 -03:00
Luan
424c65356c fix(LockupView): Add overlay nodes used by VIDEO views 2025-01-25 11:59:17 -03:00
Luan
3ffdee9554 fix(LockupMetadataView): Parse menuButton 2025-01-25 11:41:01 -03:00
Luan
083aec1c80 fix(LockupView): Fix content_image parsing 2025-01-25 11:33:38 -03:00
Luan
6d57353a80 feat(CompactLink): Parse subtitle, iconType, and iconType 2025-01-24 11:22:29 -03:00
Luan
32125c7045 feat(CommentView): Parse some extra tooltips 2025-01-21 07:51:55 -03:00
jonz94
a035b71696 fix(LiveChatTextMessage): Make some fields optional (#877)
- Mark `menu_endpoint` property as optional
- Mark `context_menu_accessibility_label` property as optional
2025-01-20 15:46:34 -03:00
Luan
33c27ddcb5 feat(Innertube): Add getAttestationChallenge (#869)
* feat(Innertube): Add `getAttestationChallenge`

YouTube has recently started using this InnerTube endpoint to fetch challenges for WebPo generation.

* chore: lint
2025-01-11 19:42:18 -03:00
Luan
50539bca9c chore(ShortsLockupView): Use a shorter import 2025-01-11 17:47:24 -03:00
Konstantin
2913d5f43d feat(Music): Add continuation support for "Up next" tab in TrackInfo (#770)
* chore: tests for playlist panel

* chore: add possibility to continue music playlist panel

* chore: allow further playlist continuation

* revert: further revert Music.ts changes

* chore: rename test description

* chore: add check and remove TODO

* fix: fix issue with new code

* chore: remove documentation

* fix: fix test by using some video from homepage
2025-01-11 17:44:29 -03:00
jonz94
732a30c09f fix(Text#fromAttributed): Fix StyleRun assuming that the startIndex and length always exist (#862)
In AttributedText, styleRuns may not always include the `startIndex` or `length` properties
- If `startIndex` is missing, we assume the style applies from the beginning of the text
- If `length` is missing, we assume the style applies to the entire text
2025-01-11 17:27:16 -03:00
jonz94
0a3104bafc feat(ContentMetadataView): Parse enableTruncation (#863) 2025-01-11 17:25:13 -03:00
jonz94
9025122484 feat(parser): Update LiveChatTextMessage (#864)
Update `LiveChatTextMessage` to extend `YTNode` rather than
`LiveChatMessageBase` to better align with the latest data
provided by Innertube.

- Add `timestamp_usec` property
- Add `timestamp_text` property
- Add `context_menu_accessibility_label` property
- Add `before_content_buttons` property
2025-01-11 17:23:22 -03:00
absidue
66cbee268d chore(parser): Simplify VideoInfo#getTrailerInfo (#867) 2025-01-11 17:22:40 -03:00
Luan
f3c777b316 fix(Text#toHTML): Return empty string if the text is undefined 2024-12-31 19:08:55 -03:00
Luan
f76a8e5d75 refactor(Parser): Update view models to use RendererContext.ts
May or may not be a breaking change for some.
2024-12-31 06:41:17 -03:00
jonz94
3c28c0d2c2 feat(parser): Update LiveChatPaidSticker (#849)
* Add `sticker_accessibility_label` property
* Add `sticker_display_width` property
* Add `sticker_display_height` property
* Add `context_menu_accessibility_label` property
* Add `timestamp_usec` property
* Add `is_v2_style` property
2024-12-31 06:24:12 -03:00
jonz94
6536801ec2 fix(ButtonCardView): Correct typo (#855) 2024-12-31 06:18:56 -03:00