Merge pull request #149 from absidue/youtube-channel-artist
Extract artist badge for YouTube channels
This commit is contained in:
commit
eafd601476
@ -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(),
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user