UPD: Парсить данные с Ютуба YouTube

Задание:
Спарсить блок лицензии конкретно заданного видео на YouTube. введите сюда описание изображения
Для этого подключил библиотеку «Simple Html Dom Php»

<?php
    require 'simple_html_dom.php'; //подключаем библиотеку
    $link = 'https://www.youtube.com/watch?v=kdmBTTAFlk0';
    $html = file_get_html( $link ); // получаем страницу

    $load = file_get_contents( $link );
    $html= str_get_html( $load );

    echo $element = $html->find('#collapsible', 0);
?>

Однако никакого результата не выдает. Тогда как тот же запрос на другие сайты - работает.
Нужно именно спарсить данные. Youtube API и oEmbed не рассматриваются.


Ответы (2 шт):

Автор решения: Denis Startsev

Вы изобретаете очередной велосипед, просто используйте oEmbed (https://oembed.com/) например есть видео https://www.youtube.com/watch?v=9bZkp7q19f0

для него делаете запрос

https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=9bZkp7q19f0&format=json

для него получается ответ

{
    "thumbnail_height": 360,
    "html": "<iframe width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/9bZkp7q19f0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>",
    "height": 270,
    "title": "PSY - GANGNAM STYLE(강남스타일) M/V",
    "provider_name": "YouTube",
    "author_url": "https://www.youtube.com/user/officialpsy",
    "type": "video",
    "author_name": "officialpsy",
    "thumbnail_url": "https://i.ytimg.com/vi/9bZkp7q19f0/hqdefault.jpg",
    "provider_url": "https://www.youtube.com/",
    "thumbnail_width": 480,
    "version": "1.0",
    "width": 480
}

формат можно как json так и xml oEmbed кстати очень многими сервисами поддерживается

→ Ссылка
Автор решения: Kobets Matviy

Для последующих искателей подобных вопросов: "Как парсить динамические страницы с помощью PHP?"
Ответ простой: Никак.
Потому что PHP - серверный язык. Он не видит исполнения .js скриптов, которые нужны для полной загрузки и отработки страницы.

С помощью библиотеки «Simple Html Dom Php» можно парсить только статические страницы.
Этот вариант мне не подходит, поэтому перешел на Python + Selenium.

К Python подключил request_html. И BeautifulSoup для парсинга HTML-страниц, который умеет извлекать скрипты для дальнейшей работы. Уже такого арсенала хватит для большинства задач. Однако искомый мною блок подгружается JSON'ом после расскрытия блока "Подробнее".
Для решения подключаем Selenium который нужен для управления браузером.

Продолжение в другой теме: Не удается получить содержимое с помощью Beautiful Soup

→ Ссылка