mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-07-02 21:52:48 +00:00
chore: v17.2.0 release
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "youtubei.js",
|
||||
"version": "17.1.0",
|
||||
"version": "17.2.0",
|
||||
"description": "A JavaScript client for YouTube's private API, known as InnerTube.",
|
||||
"type": "module",
|
||||
"types": "./dist/src/platform/lib.d.ts",
|
||||
|
||||
@@ -24,6 +24,7 @@ import Video from '../../parser/classes/Video.ts';
|
||||
|
||||
import AppendContinuationItemsAction from '../../parser/classes/actions/AppendContinuationItemsAction.ts';
|
||||
import ContinuationItem from '../../parser/classes/ContinuationItem.ts';
|
||||
import ContinuationItemView from '../../parser/classes/ContinuationItemView.ts';
|
||||
import TwoColumnBrowseResults from '../../parser/classes/TwoColumnBrowseResults.ts';
|
||||
import TwoColumnSearchResults from '../../parser/classes/TwoColumnSearchResults.ts';
|
||||
import WatchCardCompactVideo from '../../parser/classes/WatchCardCompactVideo.ts';
|
||||
@@ -225,11 +226,11 @@ export default class Feed<T extends IParsedResponse = IParsedResponse> {
|
||||
|
||||
#getBodyContinuations(): ObservedArray<ContinuationItem> {
|
||||
if (this.#page.header_memo) {
|
||||
const header_continuations = this.#page.header_memo.getType(ContinuationItem);
|
||||
return this.#memo.getType(ContinuationItem).filter(
|
||||
const header_continuations = this.#page.header_memo.getType(ContinuationItem, ContinuationItemView);
|
||||
return this.#memo.getType(ContinuationItem, ContinuationItemView).filter(
|
||||
(continuation) => !header_continuations.includes(continuation)
|
||||
) as ObservedArray<ContinuationItem>;
|
||||
}
|
||||
return this.#memo.getType(ContinuationItem);
|
||||
return this.#memo.getType(ContinuationItem, ContinuationItemView);
|
||||
}
|
||||
}
|
||||
17
deno/src/parser/classes/ContinuationItemView.ts
Normal file
17
deno/src/parser/classes/ContinuationItemView.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { YTNode } from '../helpers.ts';
|
||||
import type { RawNode } from '../types/RawResponse.ts';
|
||||
import NavigationEndpoint from './NavigationEndpoint.ts';
|
||||
|
||||
export default class ContinuationItemView extends YTNode {
|
||||
static type = 'ContinuationItemView';
|
||||
|
||||
trigger: string;
|
||||
endpoint: NavigationEndpoint;
|
||||
|
||||
constructor(data: RawNode) {
|
||||
super();
|
||||
|
||||
this.trigger = data.trigger;
|
||||
this.endpoint = new NavigationEndpoint(data.continuationCommand);
|
||||
}
|
||||
}
|
||||
@@ -115,6 +115,7 @@ export { default as ConfirmDialog } from './classes/ConfirmDialog.ts';
|
||||
export { default as ContentMetadataView } from './classes/ContentMetadataView.ts';
|
||||
export { default as ContentPreviewImageView } from './classes/ContentPreviewImageView.ts';
|
||||
export { default as ContinuationItem } from './classes/ContinuationItem.ts';
|
||||
export { default as ContinuationItemView } from './classes/ContinuationItemView.ts';
|
||||
export { default as ConversationBar } from './classes/ConversationBar.ts';
|
||||
export { default as CopyLink } from './classes/CopyLink.ts';
|
||||
export { default as CreatePlaylistDialog } from './classes/CreatePlaylistDialog.ts';
|
||||
|
||||
@@ -9,11 +9,13 @@ import PlaylistSidebarPrimaryInfo from '../classes/PlaylistSidebarPrimaryInfo.ts
|
||||
import PlaylistSidebarSecondaryInfo from '../classes/PlaylistSidebarSecondaryInfo.ts';
|
||||
import PlaylistVideoList from '../classes/PlaylistVideoList.ts';
|
||||
import PlaylistVideoThumbnail from '../classes/PlaylistVideoThumbnail.ts';
|
||||
import LockupView from '../classes/LockupView.ts';
|
||||
import ReelItem from '../classes/ReelItem.ts';
|
||||
import ShortsLockupView from '../classes/ShortsLockupView.ts';
|
||||
import VideoOwner from '../classes/VideoOwner.ts';
|
||||
import Alert from '../classes/Alert.ts';
|
||||
import ContinuationItem from '../classes/ContinuationItem.ts';
|
||||
import ContinuationItemView from '../classes/ContinuationItemView.ts';
|
||||
import PlaylistVideo from '../classes/PlaylistVideo.ts';
|
||||
import SectionList from '../classes/SectionList.ts';
|
||||
import { observe, type ObservedArray, type YTNode } from '../helpers.ts';
|
||||
@@ -66,8 +68,8 @@ export default class Playlist extends Feed<IBrowseResponse> {
|
||||
this.messages = this.memo.getType(Message);
|
||||
}
|
||||
|
||||
get items(): ObservedArray<PlaylistVideo | ReelItem | ShortsLockupView> {
|
||||
return observe(this.videos.as(PlaylistVideo, ReelItem, ShortsLockupView).filter((video) => (video as PlaylistVideo).style !== 'PLAYLIST_VIDEO_RENDERER_STYLE_RECOMMENDED_VIDEO'));
|
||||
get items(): ObservedArray<LockupView | PlaylistVideo | ReelItem | ShortsLockupView> {
|
||||
return observe(this.videos.as(LockupView, PlaylistVideo, ReelItem, ShortsLockupView).filter((video) => (video as PlaylistVideo).style !== 'PLAYLIST_VIDEO_RENDERER_STYLE_RECOMMENDED_VIDEO'));
|
||||
}
|
||||
|
||||
get has_continuation() {
|
||||
@@ -76,7 +78,7 @@ export default class Playlist extends Feed<IBrowseResponse> {
|
||||
if (!section_list)
|
||||
return super.has_continuation;
|
||||
|
||||
return !!this.memo.getType(ContinuationItem).find((node) => !section_list.contents.includes(node));
|
||||
return !!this.memo.getType(ContinuationItem, ContinuationItemView).find((node) => !section_list.contents.includes(node));
|
||||
}
|
||||
|
||||
async getContinuationData(): Promise<IBrowseResponse | undefined> {
|
||||
@@ -89,7 +91,7 @@ export default class Playlist extends Feed<IBrowseResponse> {
|
||||
if (!section_list)
|
||||
return await super.getContinuationData();
|
||||
|
||||
const playlist_contents_continuation = this.memo.getType(ContinuationItem)
|
||||
const playlist_contents_continuation = this.memo.getType(ContinuationItem, ContinuationItemView)
|
||||
.find((node) => !section_list.contents.includes(node));
|
||||
|
||||
if (!playlist_contents_continuation)
|
||||
|
||||
@@ -33,7 +33,7 @@ export const CLIENTS = {
|
||||
},
|
||||
WEB: {
|
||||
NAME: 'WEB',
|
||||
VERSION: '2.20260206.01.00',
|
||||
VERSION: '2.20260623.01.00',
|
||||
API_KEY: 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8',
|
||||
API_VERSION: 'v1',
|
||||
STATIC_VISITOR_ID: '6zpwvWUNAco',
|
||||
|
||||
Reference in New Issue
Block a user