3

I'm sending an API request to YouTube player API to get information about a video. Here is the example

function getVideoInfo($video_id){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{  "context": {    "client": {      "hl": "en",      "clientName": "WEB",      "clientVersion": "2.20210721.00.00",      "clientFormFactor": "UNKNOWN_FORM_FACTOR",   "clientScreen": "WATCH",      "mainAppWebInfo": {        "graftUrl": "/watch?v='.$video_id.'",           }    },    "user": {      "lockedSafetyMode": false    },    "request": {      "useSsl": true,      "internalExperimentFlags": [],      "consistencyTokenJars": []    }  },  "videoId": "'.$video_id.'",  "playbackContext": {    "contentPlaybackContext": {        "vis": 0,      "splay": false,      "autoCaptionsDefaultOn": false,      "autonavState": "STATE_NONE",      "html5Preference": "HTML5_PREF_WANTS",      "lactMilliseconds": "-1"    }  },  "racyCheckOk": false,  "contentCheckOk": false}');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');

$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return $result;}

It sends me a result that contains much information about the video. The one that matters for me is $result->streamingData->formats[0]->url But sometimes it doesn't send me the URL information. Instead, it sends me $result->streamingData->formats[0]->signatureCipher. When it send me the URL, I can access the video using the url. But I can't access the video when it sends me the signatureCipher peremeter. Can you please help me to access the video with this peremeter? Thanks in advance.


Edit: If you need additional information, here is how I'm building the downloader: https://www.blogdesire.com/how-to-create-a-youtube-video-downloader-using-php/

Khokon M.
  • 402
  • 3
  • 11
  • Maybe this is a duplicate of https://stackoverflow.com/questions/21510857/best-approach-to-decode-youtube-cipher-signature-using-php-or-js? – FastDeveloper Sep 04 '22 at 21:34

0 Answers0