@@ -1578,15 +1578,22 @@ function parseLockupView(lockupView, channelId = undefined, channelName = undefi
15781578
15791579 /** @type {YTNodes.ThumbnailOverlayBadgeView | undefined } */
15801580 const thumbnailOverlayBadgeView = lockupView . content_image ?. overlays ?. firstOfType ( YTNodes . ThumbnailOverlayBadgeView )
1581+ const metadataRows = lockupView . metadata . metadata ?. metadata_rows ?? [ ]
1582+ const metadataParts = metadataRows . flatMap ( ( row ) => row ?. metadata_parts ?? [ ] )
15811583
15821584 if ( thumbnailOverlayBadgeView ) {
15831585 if ( thumbnailOverlayBadgeView . badges . some ( badge => badge . badge_style === 'THUMBNAIL_OVERLAY_BADGE_STYLE_LIVE' ) ) {
15841586 liveNow = true
15851587 } else if ( thumbnailOverlayBadgeView . badges . some ( badge => badge . text . toLowerCase ( ) === 'upcoming' ) ) {
15861588 isUpcoming = true
15871589
1588- if ( lockupView . metadata . metadata ?. metadata_rows [ 1 ] . metadata_parts ?. [ 1 ] . text ?. text ) {
1589- premiereDate = new Date ( lockupView . metadata . metadata . metadata_rows [ 1 ] . metadata_parts [ 1 ] . text . text )
1590+ const premiereDateText = metadataParts . find ( ( part ) => {
1591+ const text = part . text ?. text
1592+ return text && ! isNaN ( Date . parse ( text ) )
1593+ } ) ?. text ?. text
1594+
1595+ if ( premiereDateText ) {
1596+ premiereDate = new Date ( premiereDateText )
15901597 }
15911598 } else {
15921599 const durationBadge = thumbnailOverlayBadgeView . badges . find ( badge => / ^ [ \d : ] + $ / . test ( badge . text ) )
@@ -1595,13 +1602,13 @@ function parseLockupView(lockupView, channelId = undefined, channelName = undefi
15951602 lengthSeconds = Utils . timeToSeconds ( durationBadge . text )
15961603 }
15971604
1598- publishedText = lockupView . metadata . metadata ?. metadata_rows [ 1 ] . metadata_parts ? .find ( part => part . text ?. text ?. endsWith ( 'ago' ) ) ?. text ?. text
1605+ publishedText = metadataParts . find ( part => part . text ?. text ?. endsWith ( 'ago' ) ) ?. text ?. text
15991606 }
16001607 }
16011608
16021609 let viewCount = null
16031610
1604- const viewsText = lockupView . metadata . metadata ?. metadata_rows [ 1 ] . metadata_parts ? .find ( part => {
1611+ const viewsText = metadataParts . find ( part => {
16051612 return part . text ?. text && VIEWS_OR_WATCHING_REGEX . test ( part . text . text )
16061613 } ) ?. text ?. text
16071614
0 commit comments