@@ -11,7 +11,7 @@ const isChannelVerified = (vRender) => {
1111 const badges = ( vRender [ 'ownerBadges' ] ?
1212 vRender [ 'ownerBadges' ] . map ( ( badge ) => badge [ 'metadataBadgeRenderer' ] [ 'style' ] ) : [ ]
1313 ) ;
14- return badges . includes ( 'BADGE_STYLE_TYPE_VERIFIED_ARTIST' ) ;
14+ return badges . includes ( 'BADGE_STYLE_TYPE_VERIFIED' ) || badges . includes ( ' BADGE_STYLE_TYPE_VERIFIED_ARTIST') ;
1515}
1616
1717const getChannelData = ( vRender ) => {
@@ -29,6 +29,15 @@ const getChannelData = (vRender) => {
2929 } ;
3030}
3131
32+ const getChannelLink = ( cRender ) => {
33+ return 'https://www.youtube.com' + cRender . navigationEndpoint . browseEndpoint . canonicalBaseUrl ;
34+ }
35+
36+ const getChannelVideoCount = ( cRender ) => {
37+ if ( ! cRender . videoCountText ) return 0 ;
38+ return + cRender . videoCountText . runs [ 0 ] . text ;
39+ }
40+
3241const getGeneralData = ( renderer ) => {
3342 return {
3443 channel : getChannelData ( renderer ) ,
@@ -73,12 +82,12 @@ const getUploadDate = (vRender) => {
7382
7483const getViews = ( vRender ) => {
7584 if ( ! vRender . viewCountText ) return 0 ;
76- return parseInt ( vRender . viewCountText . simpleText . replace ( / [ ^ 0 - 9 ] / g, '' ) ) ;
85+ return + vRender . viewCountText . simpleText . replace ( / [ ^ 0 - 9 ] / g, '' ) ;
7786}
7887
7988const getWatching = ( vRender ) => {
8089 if ( ! vRender . viewCountText ?. runs ) return 0 ;
81- return parseInt ( vRender . viewCountText . runs [ 0 ] . text . replace ( / [ ^ 0 - 9 ] / g, '' ) ) ;
90+ return + vRender . viewCountText . runs [ 0 ] . text . replace ( / [ ^ 0 - 9 ] / g, '' ) ;
8291}
8392
8493const idToThumbnail = function ( id ) {
@@ -104,13 +113,20 @@ const shareLink = (id, short = true) => {
104113 return short ? 'https://youtu.be/' + id : 'https://www.youtube.com/watch?v=' + id ;
105114}
106115
107- exports . getStreamData = ( item ) => {
108- const vRender = item . videoRenderer ;
116+ exports . getChannelData = ( item ) => {
117+ const cRender = item . channelRenderer ;
118+ const id = cRender . channelId ;
109119
110- return assign ( {
111- watching : getWatching ( vRender )
112- } , getGeneralData ( vRender ) )
113- }
120+ return {
121+ channelId : id ,
122+ description : compress ( cRender . descriptionSnippet ) ,
123+ link : getChannelLink ( cRender ) ,
124+ thumbnails : cRender . thumbnail . thumbnails ,
125+ subscribed : cRender . subscriptionButton . subscribed ,
126+ uploadedVideos : getChannelVideoCount ( cRender ) ,
127+ verified : isChannelVerified ( cRender )
128+ } ;
129+ } ;
114130
115131exports . getPlaylistData = ( item ) => {
116132 const pRender = item . playlistRenderer ;
@@ -126,6 +142,14 @@ exports.getPlaylistData = (item) => {
126142 } , getPlaylistGeneralData ( pRender ) ) ;
127143}
128144
145+ exports . getStreamData = ( item ) => {
146+ const vRender = item . videoRenderer ;
147+
148+ return assign ( {
149+ watching : getWatching ( vRender )
150+ } , getGeneralData ( vRender ) )
151+ }
152+
129153exports . getVideoData = ( item ) => {
130154 const vRender = item . videoRenderer ;
131155
@@ -137,6 +161,7 @@ exports.getVideoData = (item) => {
137161 } , getGeneralData ( vRender ) ) ;
138162} ;
139163
164+ exports . isChannel = ( item ) => typeof item . channelRenderer !== 'undefined' ;
140165exports . isPlaylist = ( item ) => typeof item . playlistRenderer !== 'undefined' ;
141166exports . isStream = ( item ) => item . videoRenderer && ! item . videoRenderer . lengthText ;
142167exports . isVideo = ( item ) => item . videoRenderer && item . videoRenderer . lengthText ;
0 commit comments