Как расшифровать signatureCipher из YouTube API?

Добрый день. Получаю с помощью PHP информацию о видео таким образом:
$link = 'https://www.youtube.com/watch?v=lw4T8gfcKZ0';

parse_str( parse_url( $link, PHP_URL_QUERY ), $params );
$video_id = $params['v'] ?? exit;

$arr = [
    'context' => [
        'client' => [
            'hl' => 'en',
            'clientName' => 'WEB',
            'clientVersion' => '2.20210721.00.00',
            'mainAppWebInfo' => [
                'graftUrl' => '/watch?v=' . $video_id
            ]
        ]
    ],
    'videoId' => $video_id
];


$curl = curl_init();

curl_setopt( $curl, CURLOPT_URL, 'https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8' );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type:application/json' ] );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, json_encode( $arr ) );
curl_setopt( $curl, CURLOPT_ENCODING, 'gzip, deflate' );

$result = json_decode( curl_exec( $curl ), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES );
curl_close( $curl );


$video_details = $result['videoDetails'];
$streaming_data = $result['streamingData'];
$formats = $streaming_data['formats'];
$video_name = $video_details['title'];

echo "<pre>";
print_r($streaming_data);
echo "</pre>";

В итоге на некоторых видео, вместо параметра url, я получаю signatureCipher, который шифрует подпись, в JS YouTube меняет местами символы, насколько я понял, функции для расшифровки насколько я понял находятся здесь https://www.youtube.com/s/player/c353919c/player_i... но не могу понять точно, как это работает.
Подскажите пожалуйста, кто копал в этом направлении или кто может помочь подсказать, как сформировать правильную ссылку для скачивания таких видео.

Видео, которое отдаёт signatureCipher - https://www.youtube.com/watch?v=lw4T8gfcKZ0
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы