UNPKG

youtube-moosick

Version:

Unofficial Youtube music API, fully written in TypeScript

642 lines 20.4 kB
import type { FlexColumn, Result, Run } from './common.js'; export interface ArtistURLFullResult extends Result { responseContext: ResponseContext; contents: Contents; header: RawGetArtistURLHeader; } export interface Contents { singleColumnBrowseResultsRenderer: SingleColumnBrowseResultsRenderer; } export interface SingleColumnBrowseResultsRenderer { tabs: Tab[]; } export interface Tab { tabRenderer: TabRenderer; } export interface TabRenderer { content: TabRendererContent; trackingParams: string; } export interface TabRendererContent { sectionListRenderer: SectionListRenderer; } export interface SectionListRenderer { contents: SectionListRendererContent[]; trackingParams: string; } export interface SectionListRendererContent { musicShelfRenderer?: MusicShelfRenderer; musicCarouselShelfRenderer?: MusicCarouselShelfRenderer; musicDescriptionShelfRenderer?: MusicDescriptionShelfRenderer; } export interface MusicCarouselShelfRenderer { header: MusicCarouselShelfRendererHeader; contents: MusicCarouselShelfRendererContent[]; trackingParams: string; itemSize: string; } export interface MusicCarouselShelfRendererContent { musicTwoRowItemRenderer: MusicTwoRowItemRenderer; } export interface MusicTwoRowItemRenderer { thumbnailRenderer: ThumbnailRendererClass; aspectRatio: AspectRatio; title: MusicTwoRowItemRendererTitle; subtitle: Subtitle; navigationEndpoint: MusicTwoRowItemRendererNavigationEndpoint; trackingParams: string; menu: MusicTwoRowItemRendererMenu; thumbnailOverlay?: ThumbnailOverlay; } export declare enum AspectRatio { MusicTwoRowItemThumbnailAspectRatioRectangle16_9 = "MUSIC_TWO_ROW_ITEM_THUMBNAIL_ASPECT_RATIO_RECTANGLE_16_9", MusicTwoRowItemThumbnailAspectRatioSquare = "MUSIC_TWO_ROW_ITEM_THUMBNAIL_ASPECT_RATIO_SQUARE" } export interface MusicTwoRowItemRendererMenu { menuRenderer: PurpleMenuRenderer; } export interface PurpleMenuRenderer { items: PurpleItem[]; trackingParams: string; accessibility: SubscribeAccessibilityClass; } export interface SubscribeAccessibilityClass { accessibilityData: AccessibilityAccessibility; } export interface AccessibilityAccessibility { label: string; } export interface PurpleItem { menuNavigationItemRenderer?: MenuItemRenderer; menuServiceItemRenderer?: MenuItemRenderer; toggleMenuServiceItemRenderer?: ToggleMenuServiceItemRenderer; } export interface MenuItemRenderer { text: Description; icon: Icon; navigationEndpoint?: MenuNavigationItemRendererNavigationEndpoint; trackingParams: string; serviceEndpoint?: MenuNavigationItemRendererServiceEndpoint; } export interface Icon { iconType: IconType; } export declare enum IconType { AddToPlaylist = "ADD_TO_PLAYLIST", AddToRemoteQueue = "ADD_TO_REMOTE_QUEUE", Album = "ALBUM", Collapse = "COLLAPSE", Expand = "EXPAND", Favorite = "FAVORITE", LibraryAdd = "LIBRARY_ADD", LibraryRemove = "LIBRARY_REMOVE", Mix = "MIX", MusicShuffle = "MUSIC_SHUFFLE", Pause = "PAUSE", PlayArrow = "PLAY_ARROW", QueuePlayNext = "QUEUE_PLAY_NEXT", Share = "SHARE", Subscribe = "SUBSCRIBE", Unfavorite = "UNFAVORITE", VolumeUp = "VOLUME_UP" } export interface MenuNavigationItemRendererNavigationEndpoint { clickTrackingParams: string; watchPlaylistEndpoint?: WatchPlaylistEndpoint; modalEndpoint?: ModalEndpoint; shareEntityEndpoint?: ShareEntityEndpoint; watchEndpoint?: WatchEndpoint; browseEndpoint?: PurpleBrowseEndpoint; } export interface PurpleBrowseEndpoint { browseId: string; browseEndpointContextSupportedConfigs: BrowseEndpointContextSupportedConfigs; } export interface BrowseEndpointContextSupportedConfigs { browseEndpointContextMusicConfig: BrowseEndpointContextMusicConfig; } export interface BrowseEndpointContextMusicConfig { pageType: PageType; } export declare enum PageType { MusicPageTypeAlbum = "MUSIC_PAGE_TYPE_ALBUM", MusicPageTypeArtist = "MUSIC_PAGE_TYPE_ARTIST", MusicPageTypePlaylist = "MUSIC_PAGE_TYPE_PLAYLIST" } export interface ModalEndpoint { modal: Modal; } export interface Modal { modalWithTitleAndButtonRenderer: ModalWithTitleAndButtonRenderer; } export interface ModalWithTitleAndButtonRenderer { title: Description; content: Description; button: Button; } export interface Button { buttonRenderer: ButtonButtonRenderer; } export interface ButtonButtonRenderer { style: Style; isDisabled: boolean; text: Description; navigationEndpoint: PurpleNavigationEndpoint; trackingParams: string; } export interface PurpleNavigationEndpoint { clickTrackingParams: string; signInEndpoint: SignInEndpoint; } export interface SignInEndpoint { hack: boolean; } export declare enum Style { StyleBlueText = "STYLE_BLUE_TEXT" } export interface Description { runs: DescriptionRun[]; } export interface DescriptionRun { text: string; } export interface ShareEntityEndpoint { serializedShareEntity: string; } export interface WatchEndpoint { videoId: string; playlistId: string; params?: Params; loggingContext: LoggingContext; watchEndpointMusicSupportedConfigs?: WatchEndpointMusicSupportedConfigs; } export interface LoggingContext { vssLoggingContext: VssLoggingContext; } export interface VssLoggingContext { serializedContextData: string; } export declare enum Params { WAEB = "wAEB", WAEB8GECGAE3D = "wAEB8gECGAE%3D", WAEB8GECKAE3D = "wAEB8gECKAE%3D" } export interface WatchEndpointMusicSupportedConfigs { watchEndpointMusicConfig: WatchEndpointMusicConfig; } export interface WatchEndpointMusicConfig { musicVideoType: MusicVideoType; } export declare enum MusicVideoType { MusicVideoTypeAtv = "MUSIC_VIDEO_TYPE_ATV", MusicVideoTypeOmv = "MUSIC_VIDEO_TYPE_OMV" } export interface WatchPlaylistEndpoint { playlistId: string; params?: Params; } export interface MenuNavigationItemRendererServiceEndpoint { clickTrackingParams: string; queueAddEndpoint: QueueAddEndpoint; } export interface QueueAddEndpoint { queueTarget: QueueTarget; queueInsertPosition: QueueInsertPosition; commands: Command[]; } export interface Command { clickTrackingParams: string; addToToastAction: AddToToastAction; } export interface AddToToastAction { item: AddToToastActionItem; } export interface AddToToastActionItem { notificationTextRenderer: NotificationTextRenderer; } export interface NotificationTextRenderer { successResponseText: Description; trackingParams: string; } export declare enum QueueInsertPosition { InsertAfterCurrentVideo = "INSERT_AFTER_CURRENT_VIDEO", InsertAtEnd = "INSERT_AT_END" } export interface QueueTarget { playlistId?: string; videoId?: string; } export interface ToggleMenuServiceItemRenderer { defaultText: Description; defaultIcon: Icon; defaultServiceEndpoint: DefaultServiceEndpointClass; toggledText: Description; toggledIcon: Icon; toggledServiceEndpoint?: ToggledServiceEndpoint; trackingParams: string; } export interface DefaultServiceEndpointClass { clickTrackingParams: string; modalEndpoint: ModalEndpoint; } export interface ToggledServiceEndpoint { clickTrackingParams: string; likeEndpoint: LikeEndpoint; } export interface LikeEndpoint { status: Status; target: Target; } export declare enum Status { Indifferent = "INDIFFERENT" } export interface Target { playlistId: string; } export interface MusicTwoRowItemRendererNavigationEndpoint { clickTrackingParams: string; browseEndpoint: FluffyBrowseEndpoint; watchEndpoint?: WatchEndpoint; } export interface FluffyBrowseEndpoint { browseId: string; params?: string; browseEndpointContextSupportedConfigs: BrowseEndpointContextSupportedConfigs; } export interface Subtitle { runs: SubtitleRun[]; } export interface SubtitleRun { text: string; navigationEndpoint?: FluffyNavigationEndpoint; } export interface FluffyNavigationEndpoint { clickTrackingParams: string; browseEndpoint: PurpleBrowseEndpoint; } export interface ThumbnailOverlay { musicItemThumbnailOverlayRenderer: ThumbnailOverlayMusicItemThumbnailOverlayRenderer; } export interface ThumbnailOverlayMusicItemThumbnailOverlayRenderer { background: Background; content: PurpleContent; contentPosition: ContentPosition; displayStyle: DisplayStyle; } export interface Background { verticalGradient: VerticalGradient; } export interface VerticalGradient { gradientLayerColors: string[]; } export interface PurpleContent { musicPlayButtonRenderer: PurpleMusicPlayButtonRenderer; } export interface PurpleMusicPlayButtonRenderer { playNavigationEndpoint: PlayNavigationEndpoint; trackingParams: string; playIcon: Icon; pauseIcon: Icon; iconColor: number; backgroundColor: number; activeBackgroundColor: number; loadingIndicatorColor: number; playingIcon: Icon; iconLoadingColor: number; activeScaleFactor: number; buttonSize: ButtonSize; rippleTarget: RippleTarget; accessibilityPlayData: SubscribeAccessibilityClass; accessibilityPauseData: SubscribeAccessibilityClass; } export declare enum ButtonSize { MusicPlayButtonSizeHuge = "MUSIC_PLAY_BUTTON_SIZE_HUGE", MusicPlayButtonSizeMedium = "MUSIC_PLAY_BUTTON_SIZE_MEDIUM" } export interface PlayNavigationEndpoint { clickTrackingParams: string; watchPlaylistEndpoint?: WatchPlaylistEndpoint; watchEndpoint?: WatchEndpoint; } export declare enum RippleTarget { MusicPlayButtonRippleTargetAncestor = "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_ANCESTOR", MusicPlayButtonRippleTargetSelf = "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF" } export declare enum ContentPosition { MusicItemThumbnailOverlayContentPositionBottomRight = "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_BOTTOM_RIGHT", MusicItemThumbnailOverlayContentPositionCentered = "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED" } export declare enum DisplayStyle { MusicItemThumbnailOverlayDisplayStyleHover = "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_HOVER", MusicItemThumbnailOverlayDisplayStylePersistent = "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" } export interface ThumbnailRendererClass { musicThumbnailRenderer: MusicThumbnailRenderer; } export interface MusicThumbnailRenderer { thumbnail: MusicThumbnailRendererThumbnail; thumbnailCrop: ThumbnailCrop; thumbnailScale: ThumbnailScale; trackingParams: string; } export interface MusicThumbnailRendererThumbnail { thumbnails: ThumbnailElement[]; } export interface ThumbnailElement { url: string; width: number; height: number; } export declare enum ThumbnailCrop { MusicThumbnailCropCircle = "MUSIC_THUMBNAIL_CROP_CIRCLE", MusicThumbnailCropUnspecified = "MUSIC_THUMBNAIL_CROP_UNSPECIFIED" } export declare enum ThumbnailScale { MusicThumbnailScaleAspectFill = "MUSIC_THUMBNAIL_SCALE_ASPECT_FILL", MusicThumbnailScaleAspectFit = "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT" } export interface MusicTwoRowItemRendererTitle { runs: Run[]; } export interface TentacledNavigationEndpoint { clickTrackingParams: string; browseEndpoint: FluffyBrowseEndpoint; } export interface MusicCarouselShelfRendererHeader { musicCarouselShelfBasicHeaderRenderer: MusicCarouselShelfBasicHeaderRenderer; } export interface MusicCarouselShelfBasicHeaderRenderer { title: MusicCarouselShelfBasicHeaderRendererTitle; accessibilityData: SubscribeAccessibilityClass; headerStyle: string; moreContentButton?: MoreContentButtonClass; trackingParams: string; } export interface MoreContentButtonClass { buttonRenderer: MoreContentButtonButtonRenderer; } export interface MoreContentButtonButtonRenderer { style: string; text: Description; navigationEndpoint?: Endpoint; trackingParams: string; size?: string; serviceEndpoint?: ButtonRendererServiceEndpoint; } export interface Endpoint { clickTrackingParams: string; browseEndpoint: BottomEndpointBrowseEndpoint; } export interface BottomEndpointBrowseEndpoint { browseId: string; params: string; } export interface ButtonRendererServiceEndpoint { clickTrackingParams: string; unsubscribeEndpoint: UnsubscribeEndpoint; } export interface UnsubscribeEndpoint { channelIds: string[]; } export interface MusicCarouselShelfBasicHeaderRendererTitle { runs: FluffyRun[]; } export interface FluffyRun { text: string; navigationEndpoint?: Endpoint; } export interface MusicDescriptionShelfRenderer { header: Description; subheader: Description; description: Description; moreButton: MoreButton; trackingParams: string; } export interface MoreButton { toggleButtonRenderer: ToggleButtonRenderer; } export interface ToggleButtonRenderer { isToggled: boolean; isDisabled: boolean; defaultIcon: Icon; defaultText: Description; toggledIcon: Icon; toggledText: Description; trackingParams: string; } export interface MusicShelfRenderer { title: MusicCarouselShelfBasicHeaderRendererTitle; contents: MusicShelfRendererContent[]; trackingParams: string; bottomText: Description; bottomEndpoint: Endpoint; shelfDivider: ShelfDivider; } export interface MusicShelfRendererContent { musicResponsiveListItemRenderer: MusicResponsiveListItemRenderer; } export interface MusicResponsiveListItemRenderer { trackingParams: string; thumbnail: ThumbnailRendererClass; overlay: Overlay; flexColumns: FlexColumn[]; menu: MusicResponsiveListItemRendererMenu; playlistItemData: PlaylistItemData; } export interface StickyNavigationEndpoint { clickTrackingParams: string; watchEndpoint?: WatchEndpoint; browseEndpoint?: PurpleBrowseEndpoint; } export interface MusicResponsiveListItemRendererMenu { menuRenderer: FluffyMenuRenderer; } export interface FluffyMenuRenderer { items: FluffyItem[]; trackingParams: string; topLevelButtons: TopLevelButton[]; accessibility: SubscribeAccessibilityClass; } export interface FluffyItem { menuNavigationItemRenderer?: MenuItemRenderer; menuServiceItemRenderer?: MenuItemRenderer; } export interface TopLevelButton { likeButtonRenderer: LikeButtonRenderer; } export interface LikeButtonRenderer { target: PlaylistItemData; likeStatus: Status; trackingParams: string; likesAllowed: boolean; dislikeNavigationEndpoint: DefaultServiceEndpointClass; likeCommand: DefaultServiceEndpointClass; } export interface PlaylistItemData { videoId: string; } export interface Overlay { musicItemThumbnailOverlayRenderer: OverlayMusicItemThumbnailOverlayRenderer; } export interface OverlayMusicItemThumbnailOverlayRenderer { background: Background; content: FluffyContent; contentPosition: ContentPosition; displayStyle: DisplayStyle; } export interface FluffyContent { musicPlayButtonRenderer: FluffyMusicPlayButtonRenderer; } export interface FluffyMusicPlayButtonRenderer { playNavigationEndpoint: NavigationEndpoint; trackingParams: string; playIcon: Icon; pauseIcon: Icon; iconColor: number; backgroundColor: number; activeBackgroundColor: number; loadingIndicatorColor: number; playingIcon: Icon; iconLoadingColor: number; activeScaleFactor: number; buttonSize: string; rippleTarget: RippleTarget; accessibilityPlayData: SubscribeAccessibilityClass; accessibilityPauseData: SubscribeAccessibilityClass; } export interface NavigationEndpoint { clickTrackingParams: string; watchEndpoint: WatchEndpoint; } export interface ShelfDivider { musicShelfDividerRenderer: MusicShelfDividerRenderer; } export interface MusicShelfDividerRenderer { hidden: boolean; } export interface RawGetArtistURLHeader { musicImmersiveHeaderRenderer: MusicImmersiveHeaderRenderer; } export interface MusicImmersiveHeaderRenderer { title: Description; subscriptionButton: SubscriptionButton; description: Description; moreButton: MoreButton; menu: MusicImmersiveHeaderRendererMenu; thumbnail: ThumbnailRendererClass; trackingParams: string; playButton: PlayButton; startRadioButton: StartRadioButton; shareEndpoint: ShareEndpoint; } export interface MusicImmersiveHeaderRendererMenu { menuRenderer: TentacledMenuRenderer; } export interface TentacledMenuRenderer { items: TentacledItem[]; trackingParams: string; accessibility: SubscribeAccessibilityClass; } export interface TentacledItem { menuNavigationItemRenderer: MenuItemRenderer; } export interface PlayButton { buttonRenderer: PlayButtonButtonRenderer; } export interface PlayButtonButtonRenderer { style: string; size: string; text: Description; icon: Icon; navigationEndpoint: NavigationEndpoint; accessibility: AccessibilityAccessibility; trackingParams: string; accessibilityData: SubscribeAccessibilityClass; } export interface ShareEndpoint { clickTrackingParams: string; shareEntityEndpoint: ShareEntityEndpoint; } export interface StartRadioButton { buttonRenderer: StartRadioButtonButtonRenderer; } export interface StartRadioButtonButtonRenderer { text: Description; icon: Icon; navigationEndpoint: IndigoNavigationEndpoint; accessibility: AccessibilityAccessibility; trackingParams: string; } export interface IndigoNavigationEndpoint { clickTrackingParams: string; watchPlaylistEndpoint: WatchPlaylistEndpoint; } export interface SubscriptionButton { subscribeButtonRenderer: SubscribeButtonRenderer; } export interface SubscribeButtonRenderer { subscriberCountText: Description; subscribed: boolean; enabled: boolean; type: string; channelId: string; showPreferences: boolean; subscriberCountWithSubscribeText: Description; subscribedButtonText: Description; unsubscribedButtonText: Description; trackingParams: string; unsubscribeButtonText: Description; serviceEndpoints: ServiceEndpointElement[]; longSubscriberCountText: LongSubscriberCountText; shortSubscriberCountText: Description; subscribeAccessibility: SubscribeAccessibilityClass; unsubscribeAccessibility: SubscribeAccessibilityClass; signInEndpoint: DefaultServiceEndpointClass; } export interface LongSubscriberCountText { runs: DescriptionRun[]; accessibility: SubscribeAccessibilityClass; } export interface ServiceEndpointElement { clickTrackingParams: string; subscribeEndpoint?: SubscribeEndpoint; signalServiceEndpoint?: SignalServiceEndpoint; } export interface SignalServiceEndpoint { signal: string; actions: Action[]; } export interface Action { clickTrackingParams: string; openPopupAction: OpenPopupAction; } export interface OpenPopupAction { popup: Popup; popupType: string; } export interface Popup { confirmDialogRenderer: ConfirmDialogRenderer; } export interface ConfirmDialogRenderer { trackingParams: string; dialogMessages: Description[]; confirmButton: MoreContentButtonClass; cancelButton: MoreContentButtonClass; } export interface SubscribeEndpoint { channelIds: string[]; params: string; } export interface ResponseContext { maxAgeSeconds: number; serviceTrackingParams: ServiceTrackingParam[]; } export interface ServiceTrackingParam { service: string; params: Param[]; } export interface Param { key: string; value: string; } //# sourceMappingURL=rawGetArtistURL.d.ts.map