Benjamin-Loison / YouTube-operational-API

YouTube operational API works when YouTube Data API v3 fails.
384 stars 47 forks source link

Use `$realOptions` in `index.php` to avoid repeating these `part`s #58

Open Benjamin-Loison opened 1 year ago

Benjamin-Loison commented 1 year ago
diff --git a/channels.php b/channels.php
index fd42717..cca798f 100644
--- a/channels.php
+++ b/channels.php
@@ -1,6 +1,9 @@
 <?php

-    header('Content-Type: application/json; charset=UTF-8');
+    if(!test())
+    {
+        header('Content-Type: application/json; charset=UTF-8');
+    }

     $channelsTests = [
         ['cId=FolkartTr', 'items/0/id', 'UCnS--2e1yzQCm5r4ClrMJBg'],
diff --git a/index.php b/index.php
index 30dd73c..f122e7d 100644
--- a/index.php
+++ b/index.php
@@ -53,15 +53,18 @@

     function feature($feature)
     {
+        global $test;
         $suburl = "$feature[0]/list";
+        $test = true;
+        include_once "$feature[0].php";
         $webpage = explode('/', $suburl, 2)[0];
         $url = $feature[1];
         $name = ucfirst(str_replace('/', ': ', $suburl));
-        echo "<p>Based on <a href=\"https://developers.google.com/youtube/v3/docs/$suburl\">$name</a>: " . url(WEBSITE_URL . "$webpage?part=$url") . '</p>';
+        echo "<p>Based on <a href=\"https://developers.google.com/youtube/v3/docs/$suburl\">$name</a>: " . url(WEBSITE_URL . "$webpage?part=" . implode(',', $realOptions) . "&$url") . '</p>';
     }

     $features = [
-        ['channels', 'status,upcomingEvents,shorts,community,channels,about,approval,playlists,snippet,membership,popular&cId=C_ID&id=CHANNEL_ID&handle=HANDLE&forUsername=USERNAME&raw=RAW&order=viewCount(&pageToken=PAGE_TOKEN)'],
+        ['channels', 'cId=C_ID&id=CHANNEL_ID&handle=HANDLE&forUsername=USERNAME&raw=RAW&order=viewCount(&pageToken=PAGE_TOKEN)'],
         ['commentThreads', 'snippet,replies&id=COMMENT_ID&videoId=VIDEO_ID&order=relevance,time(&pageToken=PAGE_TOKEN)'],
         ['playlists', 'snippet,statistics&id=PLAYLIST_ID'],
         ['playlistItems', 'snippet&playlistId=PLAYLIST_ID(&pageToken=PAGE_TOKEN)'],

Faces the issue Benjamin-Loison/php-src/issues/3.

Benjamin-Loison commented 7 months ago
diff --git a/index.php b/index.php
index 30dd73c..1f1059f 100644
--- a/index.php
+++ b/index.php
@@ -55,18 +55,43 @@
     {
         $suburl = "$feature[0]/list";
         $webpage = explode('/', $suburl, 2)[0];
-        $url = $feature[1];
+        $parameters = $feature[1];
+        $url = urldecode(http_build_query(array_combine(array_keys($parameters), array_map(fn($parameterValue) => gettype($parameterValue) === 'string' ? $parameterValue : implode(',', $parameterValue), array_values($parameters)))));
         $name = ucfirst(str_replace('/', ': ', $suburl));
-        echo "<p>Based on <a href=\"https://developers.google.com/youtube/v3/docs/$suburl\">$name</a>: " . url(WEBSITE_URL . "$webpage?part=$url") . '</p>';
+        echo "<p>Based on <a href=\"https://developers.google.com/youtube/v3/docs/$suburl\">$name</a>: " . url(WEBSITE_URL . "$webpage?$url") . '</p>';
     }

     $features = [
-        ['channels', 'status,upcomingEvents,shorts,community,channels,about,approval,playlists,snippet,membership,popular&cId=C_ID&id=CHANNEL_ID&handle=HANDLE&forUsername=USERNAME&raw=RAW&order=viewCount(&pageToken=PAGE_TOKEN)'],
+        ['channels', [
+            'part' => [
+                'status',
+                'upcomingEvents',
+                'shorts',
+                'community',
+                'channels',
+                'about',
+                'approval',
+                'playlists',
+                'snippet',
+                'membership',
+                'popular',
+            ],
+            'cId' => 'C_ID',
+            'id' => 'CHANNEL_ID',
+            'handle' => 'HANDLE',
+            'forUsername' => 'USERNAME',
+            'raw' => 'RAW',
+            'order' => 'viewCount',
+            // How to show that is an optional parameter?
+            'pageToken' => 'PAGE_TOKEN',
+        ]],
+        /*
         ['commentThreads', 'snippet,replies&id=COMMENT_ID&videoId=VIDEO_ID&order=relevance,time(&pageToken=PAGE_TOKEN)'],
         ['playlists', 'snippet,statistics&id=PLAYLIST_ID'],
         ['playlistItems', 'snippet&playlistId=PLAYLIST_ID(&pageToken=PAGE_TOKEN)'],
         ['search', 'id,snippet&q=QUERY&channelId=CHANNEL_ID&eventType=upcoming&hashtag=HASH_TAG&type=video,short&order=viewCount,relevance(&pageToken=PAGE_TOKEN)'],
         ['videos', 'id,status,contentDetails,music,short,impressions,musics,isPaidPromotion,isPremium,isMemberOnly,mostReplayed,qualities,chapters,isOriginal,isRestricted,snippet,clip,activity&id=VIDEO_ID&clipId=CLIP_ID&SAPISIDHASH=YOUR_SAPISIDHASH'],
+        */
     ];

 ?>
Benjamin-Loison commented 7 months ago

Verify afterwards index.php with previous URLs. Done.