Merge pull request #149 from absidue/youtube-channel-artist

Extract artist badge for YouTube channels
This commit is contained in:
Killer069 2021-11-01 15:37:06 +05:30 committed by GitHub
commit eafd601476
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 2 deletions

View File

@ -9,6 +9,7 @@ export interface ChannelIconInterface {
export class YouTubeChannel { export class YouTubeChannel {
name?: string; name?: string;
verified?: boolean; verified?: boolean;
artist?: boolean;
id?: string; id?: string;
type: 'video' | 'playlist' | 'channel'; type: 'video' | 'playlist' | 'channel';
url?: string; url?: string;
@ -26,6 +27,7 @@ export class YouTubeChannel {
this.name = data.name || null; this.name = data.name || null;
this.verified = !!data.verified || false; this.verified = !!data.verified || false;
this.artist = !!data.artist || false;
this.id = data.id || null; this.id = data.id || null;
this.url = data.url || null; this.url = data.url || null;
this.icon = data.icon || { url: null, width: 0, height: 0 }; this.icon = data.icon || { url: null, width: 0, height: 0 };
@ -52,6 +54,7 @@ export class YouTubeChannel {
return { return {
name: this.name, name: this.name,
verified: this.verified, verified: this.verified,
artist: this.artist,
id: this.id, id: this.id,
url: this.url, url: this.url,
iconURL: this.iconURL(), iconURL: this.iconURL(),

View File

@ -135,7 +135,8 @@ export async function video_basic_info(url: string, options: InfoOptions = {}) {
name: vid.author, name: vid.author,
id: vid.channelId, id: vid.channelId,
url: `https://www.youtube.com/channel/${vid.channelId}`, url: `https://www.youtube.com/channel/${vid.channelId}`,
verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')) verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')),
artist: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('artist'))
}, },
views: vid.viewCount, views: vid.viewCount,
tags: vid.keywords, tags: vid.keywords,

View File

@ -98,6 +98,7 @@ export function parseChannel(data?: any): YouTubeChannel {
}, },
url: url, url: url,
verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')), verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')),
artist: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('artist')),
subscribers: data.channelRenderer.subscriberCountText?.simpleText subscribers: data.channelRenderer.subscriberCountText?.simpleText
? data.channelRenderer.subscriberCountText.simpleText ? data.channelRenderer.subscriberCountText.simpleText
: '0 subscribers' : '0 subscribers'
@ -141,7 +142,8 @@ export function parseVideo(data?: any): YouTubeVideo {
height: data.videoRenderer.channelThumbnailSupportedRenderers.channelThumbnailWithLinkRenderer.thumbnail height: data.videoRenderer.channelThumbnailSupportedRenderers.channelThumbnailWithLinkRenderer.thumbnail
.thumbnails[0].height .thumbnails[0].height
}, },
verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')) verified: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('verified')),
artist: Boolean(badge?.metadataBadgeRenderer?.style?.toLowerCase().includes('artist'))
}, },
uploadedAt: data.videoRenderer.publishedTimeText?.simpleText ?? null, uploadedAt: data.videoRenderer.publishedTimeText?.simpleText ?? null,
views: data.videoRenderer.viewCountText?.simpleText?.replace(/[^0-9]/g, '') ?? 0, views: data.videoRenderer.viewCountText?.simpleText?.replace(/[^0-9]/g, '') ?? 0,