Commit Graph

479 Commits

Author SHA1 Message Date
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
jonz94
b4a947a9eb feat(parser): Update LiveChatViewerEngagementMessage (#856)
Update `LiveChatViewerEngagementMessage` to extend `YTNode` rather than
`LiveChatMessageBase` to better align with the latest data provided by
Innertube.
2024-12-31 06:14:49 -03:00
jonz94
5f899fcdb3 feat(parser): Update Button (#857)
* Add `style` property
* Add `size` property
* Add `target_id` property
* Parse `data.accessibilityData.accessibilityData.label` if `data.accessibility.label` is unavailable
2024-12-31 06:11:31 -03:00
Luan
c6310228fe feat(Parser): Add AvatarStackView 2024-12-31 06:05:49 -03:00
Luan
3a11b99429 feat(Parser): Implement utility class to parse rendererContext
This field is found in most of the newer view model nodes. It can contain accessibility labels, text, commands or nothing but logging info.
2024-12-31 06:04:53 -03:00
Luan
a602a317aa feat(PageHeaderView): Parse heroImage 2024-12-31 05:23:35 -03:00
Luan
c2dd803eea fix(DescriptionPreviewView): Parsing errors when certain fields are missing 2024-12-31 05:16:36 -03:00
Luan
88af6d89a5 feat(ToggleButtonView): Add is_toggled 2024-12-30 15:04:18 -03:00
jonz94
826a9541a4 fix(sendMessage): Handle RunAttestationCommand in response actions (#859)
* fix(sendMessage): Handle `RunAttestationCommand` in response actions

Handle the case when `RunAttestationCommand` is included in the
`sendMessage()` response actions.

* style: trim trailing whitespace
2024-12-27 02:41:30 -03:00
Luan
913dcc74ea fix(TextRun): Add img element only if an URL is available 2024-12-25 00:19:26 -03:00
Luan
75b8964180 feat(SubscribeButton): Add unsubscribe_text 2024-12-23 21:33:42 -03:00
jonz94
5f83a7416d feat(parser): Update LiveChatTickerPaidStickerItem (#848)
The `LiveChatTickerPaidStickerItem` class has been updated to extend
`YTNode` instead of `LiveChatTickerPaidMessageItem` to better align with
the latest data provided by InnerTube
2024-12-22 16:09:34 -03:00
jonz94
ef37aa0a5a feat(LiveChatPaidMessage): Parse headerOverlayImage and lowerBumper (#851)
* feat(LiveChatPaidMessage): Parse `headerOverlayImage` and `lowerBumper`

When a viewer donates for the 1st, 3rd, 5th, 10th, or 20th time,
there will be a special type of `LiveChatPaidMessage` that includes an
animated image in the header, followed by a bumper text message.

* chore: npm run build:parser-map
2024-12-22 16:08:37 -03:00
absidue
5050f4866b chore(parser): Hoist API_PATH constants in endpoint nodes (#852) 2024-12-21 00:14:18 -03:00
Luan
78e79519e6 refactor(MultiPageMenuNotificationSection): Parse items as an array 2024-12-18 12:25:19 -03:00
Luan
c3d4b2d60a chore(parser): Fix continuation types 2024-12-18 12:18:40 -03:00
Luan
45b734288e feat(parser): Parse OpenPopupAction in onResponseReceivedEndpoints arrays 2024-12-18 12:06:36 -03:00