youtube-moosick
Version:
Unofficial Youtube music API, fully written in TypeScript
376 lines • 11.2 kB
TypeScript
import type { DisplayPriority, EndpointlessText, Result } from './common.js';
export interface SongURLFullResult extends Result {
responseContext: ResponseContext;
contents: Contents;
}
export interface Contents {
tabbedSearchResultsRenderer: TabbedSearchResultsRenderer;
}
export interface TabbedSearchResultsRenderer {
tabs: Tab[];
}
export interface Tab {
tabRenderer: TabRenderer;
}
export interface TabRenderer {
title: string;
selected: boolean;
content: TabRendererContent;
tabIdentifier: string;
trackingParams: string;
}
export interface TabRendererContent {
sectionListRenderer: SectionListRenderer;
}
export interface SectionListRenderer {
contents: SectionListRendererContent[];
trackingParams: string;
header: Header;
}
export interface SectionListRendererContent {
musicShelfRenderer: MusicShelfRenderer;
}
export interface MusicShelfRenderer {
title: EndpointlessText;
contents: MusicShelfRendererContent[];
trackingParams: string;
shelfDivider: ShelfDivider;
bottomText: EndpointlessText;
bottomEndpoint: Endpoint;
}
export interface Endpoint {
clickTrackingParams: string;
searchEndpoint: SearchEndpoint;
}
export interface SearchEndpoint {
query: string;
params: string;
}
export interface MusicShelfRendererContent {
musicResponsiveListItemRenderer: MusicResponsiveListItemRenderer;
}
export interface MusicResponsiveListItemRenderer {
trackingParams: string;
thumbnail: MusicResponsiveListItemRendererThumbnail;
overlay: Overlay;
flexColumns: FlexColumn[];
menu: Menu;
playlistItemData: PlaylistItemData;
flexColumnDisplayStyle: string;
itemHeight: ItemHeight;
navigationEndpoint: MusicResponsiveListItemRendererNavigationEndpoint;
badges: Badge[];
}
export interface Badge {
musicInlineBadgeRenderer: MusicInlineBadgeRenderer;
}
export interface MusicInlineBadgeRenderer {
trackingParams: string;
icon: Icon;
accessibilityData: Accessibility;
}
export interface Accessibility {
accessibilityData: AccessibilityData;
}
export interface AccessibilityData {
label: string;
}
export interface Icon {
iconType: string;
}
export interface FlexColumn {
musicResponsiveListItemFlexColumnRenderer: MusicResponsiveListItemFlexColumnRenderer;
}
export interface MusicResponsiveListItemFlexColumnRenderer {
text: EndpointlessText;
displayPriority: DisplayPriority;
}
export interface BrowseEndpoint {
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",
MusicPageTypeUserChannel = "MUSIC_PAGE_TYPE_USER_CHANNEL"
}
export interface WatchEndpoint {
videoId: string;
playlistId: string;
loggingContext: LoggingContext;
watchEndpointMusicSupportedConfigs: WatchEndpointMusicSupportedConfigs;
params: string;
}
export interface LoggingContext {
vssLoggingContext: VssLoggingContext;
}
export interface VssLoggingContext {
serializedContextData: string;
}
export interface WatchEndpointMusicSupportedConfigs {
watchEndpointMusicConfig: WatchEndpointMusicConfig;
}
export interface WatchEndpointMusicConfig {
musicVideoType: MusicVideoType;
}
export declare enum MusicVideoType {
MusicVideoTypeAtv = "MUSIC_VIDEO_TYPE_ATV",
MusicVideoTypeUgc = "MUSIC_VIDEO_TYPE_UGC"
}
export declare enum ItemHeight {
MusicResponsiveListItemHeightTall = "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL"
}
export interface Menu {
menuRenderer: MenuRenderer;
}
export interface MenuRenderer {
items: ItemElement[];
trackingParams: string;
accessibility: Accessibility;
}
export interface ItemElement {
menuNavigationItemRenderer: MenuItemRenderer;
menuServiceItemRenderer: MenuItemRenderer;
toggleMenuServiceItemRenderer: ToggleMenuServiceItemRenderer;
}
export interface MenuItemRenderer {
text: EndpointlessText;
icon: Icon;
navigationEndpoint: MenuNavigationItemRendererNavigationEndpoint;
trackingParams: string;
serviceEndpoint: ServiceEndpoint;
}
export interface MenuNavigationItemRendererNavigationEndpoint {
clickTrackingParams: string;
watchEndpoint: WatchEndpoint;
modalEndpoint: ModalEndpoint;
browseEndpoint: BrowseEndpoint;
shareEntityEndpoint: ShareEntityEndpoint;
watchPlaylistEndpoint: WatchPlaylistEndpoint;
}
export interface ModalEndpoint {
modal: Modal;
}
export interface Modal {
modalWithTitleAndButtonRenderer: ModalWithTitleAndButtonRenderer;
}
export interface ModalWithTitleAndButtonRenderer {
title: EndpointlessText;
content: EndpointlessText;
button: Button;
}
export interface Button {
buttonRenderer: ButtonRenderer;
}
export interface ButtonRenderer {
style: StyleEnum;
isDisabled: boolean;
text: EndpointlessText;
navigationEndpoint: ButtonRendererNavigationEndpoint;
trackingParams: string;
}
export interface ButtonRendererNavigationEndpoint {
clickTrackingParams: string;
signInEndpoint: SignInEndpoint;
}
export interface SignInEndpoint {
hack: boolean;
}
export declare enum StyleEnum {
StyleBlueText = "STYLE_BLUE_TEXT"
}
export interface ShareEntityEndpoint {
serializedShareEntity: string;
}
export interface WatchPlaylistEndpoint {
playlistId: string;
params: string;
}
export interface ServiceEndpoint {
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: EndpointlessText;
trackingParams: string;
}
export declare enum QueueInsertPosition {
InsertAfterCurrentVideo = "INSERT_AFTER_CURRENT_VIDEO",
InsertAtEnd = "INSERT_AT_END"
}
export interface QueueTarget {
videoId: string;
playlistId: string;
}
export interface ToggleMenuServiceItemRenderer {
defaultText: EndpointlessText;
defaultIcon: Icon;
defaultServiceEndpoint: DefaultServiceEndpoint;
toggledText: EndpointlessText;
toggledIcon: Icon;
trackingParams: string;
toggledServiceEndpoint: ToggledServiceEndpoint;
}
export interface DefaultServiceEndpoint {
clickTrackingParams: string;
modalEndpoint: ModalEndpoint;
}
export interface ToggledServiceEndpoint {
clickTrackingParams: string;
likeEndpoint: LikeEndpoint;
}
export interface LikeEndpoint {
status: string;
target: Target;
}
export interface Target {
playlistId: string;
}
export interface MusicResponsiveListItemRendererNavigationEndpoint {
clickTrackingParams: string;
browseEndpoint: BrowseEndpoint;
}
export interface Overlay {
musicItemThumbnailOverlayRenderer: MusicItemThumbnailOverlayRenderer;
}
export interface MusicItemThumbnailOverlayRenderer {
background: Background;
content: MusicItemThumbnailOverlayRendererContent;
contentPosition: ContentPosition;
displayStyle: DisplayStyle;
}
export interface Background {
verticalGradient: VerticalGradient;
}
export interface VerticalGradient {
gradientLayerColors: string[];
}
export interface MusicItemThumbnailOverlayRendererContent {
musicPlayButtonRenderer: MusicPlayButtonRenderer;
}
export interface MusicPlayButtonRenderer {
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: Accessibility;
accessibilityPauseData: Accessibility;
}
export declare enum ButtonSize {
MusicPlayButtonSizeSmall = "MUSIC_PLAY_BUTTON_SIZE_SMALL"
}
export interface PlayNavigationEndpoint {
clickTrackingParams: string;
watchEndpoint: WatchEndpoint;
watchPlaylistEndpoint: WatchPlaylistEndpoint;
}
export declare enum RippleTarget {
SELF = "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF"
}
export declare enum ContentPosition {
CENTERED = "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED"
}
export declare enum DisplayStyle {
PERSISTENT = "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT"
}
export interface PlaylistItemData {
videoId: string;
}
export interface MusicResponsiveListItemRendererThumbnail {
musicThumbnailRenderer: MusicThumbnailRenderer;
}
export interface MusicThumbnailRenderer {
thumbnail: MusicThumbnailRendererThumbnail;
thumbnailCrop: ThumbnailCrop;
thumbnailScale: ThumbnailScale;
trackingParams: string;
}
export interface MusicThumbnailRendererThumbnail {
thumbnails: Thumbnail[];
}
export interface Thumbnail {
url: string;
width: number;
height: number;
}
export declare enum ThumbnailCrop {
CIRCLE = "MUSIC_THUMBNAIL_CROP_CIRCLE",
UNSPECIFIED = "MUSIC_THUMBNAIL_CROP_UNSPECIFIED"
}
export declare enum ThumbnailScale {
FILL = "MUSIC_THUMBNAIL_SCALE_ASPECT_FILL",
FIT = "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT"
}
export interface ShelfDivider {
musicShelfDividerRenderer: MusicShelfDividerRenderer;
}
export interface MusicShelfDividerRenderer {
hidden: boolean;
}
export interface Header {
chipCloudRenderer: ChipCloudRenderer;
}
export interface ChipCloudRenderer {
chips: Chip[];
collapsedRowCount: number;
trackingParams: string;
horizontalScrollable: boolean;
}
export interface Chip {
chipCloudChipRenderer: ChipCloudChipRenderer;
}
export interface ChipCloudChipRenderer {
style: StyleClass;
text: EndpointlessText;
navigationEndpoint: Endpoint;
trackingParams: string;
accessibilityData: Accessibility;
isSelected: boolean;
}
export interface StyleClass {
styleType: string;
}
export interface ResponseContext {
maxAgeSeconds: number;
serviceTrackingParams: ServiceTrackingParam[];
}
export interface ServiceTrackingParam {
service: string;
params: Param[];
}
export interface Param {
key: string;
value: string;
}
//# sourceMappingURL=rawGetSongURL.d.ts.map