From 2a69c585b8a1b55892dd798d87116dc0662a023d Mon Sep 17 00:00:00 2001
From: csisoap <33269526+csisoap@users.noreply.github.com>
Date: Sun, 18 Dec 2022 14:23:18 +0700
Subject: [PATCH] [YoutubeBridge] fix blank page when duration limit used
 (#3192)

---
 bridges/YoutubeBridge.php | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/bridges/YoutubeBridge.php b/bridges/YoutubeBridge.php
index 7aa101e7..a7f523bb 100644
--- a/bridges/YoutubeBridge.php
+++ b/bridges/YoutubeBridge.php
@@ -257,6 +257,8 @@ class YoutubeBridge extends BridgeAbstract
                 $wrapper = $item->videoRenderer;
             } elseif (isset($item->playlistVideoRenderer)) {
                 $wrapper = $item->playlistVideoRenderer;
+            } elseif (isset($item->richItemRenderer)) {
+                $wrapper = $item->richItemRenderer->content->videoRenderer;
             } else {
                 continue;
             }
@@ -278,7 +280,7 @@ class YoutubeBridge extends BridgeAbstract
             // 01:03:30 / 15:06 / 1:24
             $durationText = 0;
             if (isset($wrapper->lengthText)) {
-                $durationText = $wrapper->lengthText;
+                $durationText = $wrapper->lengthText->simpleText;
             } else {
                 foreach ($wrapper->thumbnailOverlays as $overlay) {
                     if (isset($overlay->thumbnailOverlayTimeStatusRenderer)) {
@@ -288,14 +290,8 @@ class YoutubeBridge extends BridgeAbstract
                 }
             }
 
-            if (isset($durationText->simpleText)) {
-                $durationText = trim($durationText->simpleText);
-            } else {
-                $durationText = 0;
-            }
-
-            if (preg_match('/([\d]{1,2}):([\d]{1,2})\:([\d]{2})/', $durationText)) {
-                $durationText = preg_replace('/([\d]{1,2}):([\d]{1,2})\:([\d]{2})/', '$1:$2:$3', $durationText);
+            if (preg_match('/([\d]{1,2})\:([\d]{1,2})\:([\d]{2})/', $durationText)) {
+                $durationText = preg_replace('/([\d]{1,2})\:([\d]{1,2})\:([\d]{2})/', '$1:$2:$3', $durationText);
             } else {
                 $durationText = preg_replace('/([\d]{1,2})\:([\d]{2})/', '00:$1:$2', $durationText);
             }
@@ -350,8 +346,8 @@ class YoutubeBridge extends BridgeAbstract
                 if (isset($jsonData->contents)) {
                     $channel_id = $jsonData->metadata->channelMetadataRenderer->externalId;
                     $jsonData = $jsonData->contents->twoColumnBrowseResultsRenderer->tabs[1];
-                    $jsonData = $jsonData->tabRenderer->content->sectionListRenderer->contents[0];
-                    $jsonData = $jsonData->itemSectionRenderer->contents[0]->gridRenderer->items;
+                    $jsonData = $jsonData->tabRenderer->content->richGridRenderer->contents;
+                    // $jsonData = $jsonData->itemSectionRenderer->contents[0]->gridRenderer->items;
                     $this->parseJSONListing($jsonData);
                 } else {
                     returnServerError('Unable to get data from YouTube. Username/Channel: ' . $this->request);