[YoutubeBridge] fix blank page when duration limit used (#3192)

This commit is contained in:
csisoap 2022-12-18 14:23:18 +07:00 committed by GitHub
parent 936ae8cca3
commit 2a69c585b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 11 deletions

View File

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