Вопрос по ios, download, youtube, url – Использование get_video на YouTube для загрузки видео

6

Я пытаюсь получить URL-адрес любого видео на YouTube, например:

открыто

http://youtube.com/get_video_info?video_id=VIDEOID

затем возьмитеaccount_playback_token значение токена и откройте этот URL:

http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN&fmt=18&asv=2

Это должно открыть страницу только с видео или начать загрузку видео. Но ничего не происходит, окно активности Safari показывает «Не найдено», поэтому с URL-адресом что-то не так. Я хочу интегрировать это в приложение для iPad, и метод javascript для получения URL-адреса видео, который я использую в версии приложения для iPhone, не работает, поэтому мне нужно другое решение.

YouTube постоянно меняется, и я думаю, что URL просто устарел. Пожалуйста помоги :)

Изменить: кажется, что метод get_video больше не работает. Буду очень признателен, если кто-нибудь скажет мне другой способ найти URL видео.

Спасибо, мне действительно нужна помощь.

Ваш Ответ

3   ответа
10

это больше невозможно. Они ограничивают токен IP-адресом, который его получил.

Вот обходной путь, используяget_headers() Функция, которая дает вам массив с ссылкой на видео. Я ничего не знаю оiosНадеюсь, вы можете переписать этот код PHP самостоятельно.

<?php
if(empty($_GET['id'])) {
    echo "No id found!";
}

else {

    function url_exists($url) {
        if(file_get_contents($url, FALSE, NULL, 0, 0) === false) return false;
        return true;
    }

    $id = $_GET['id'];

    $page = @file_get_contents('http://www.youtube.com/get_video_info?&video_id='.$id);

    preg_match('/token=(.*?)&thumbnail_url=/', $page, $token);

    $token = urldecode($token[1]);

    $get = $title->video_details;

    $url_array = array ("http://youtube.com/get_video?video_id=".$id."&t=".$token,
    "http://youtube.com/get_video?video_id=".$id."&t=".$token."&fmt=18");

    if(url_exists($url_array[1]) === true) {
        $file = get_headers($url_array[1]);
    }

    elseif(url_exists($url_array[0]) === true) {
        $file = get_headers($url_array[0]);
    }

    $url = trim($file[19],"Location: ");

    echo '<a href="'.$url.'">Download video</a>';
}
?>
Я просто посмотрел на него еще раз, а потом полностью понял: D, но почему он не дает ссылки на все форматы в каждом разрешении (в 720p он дает mp4 и x-flv, в 480p он дает ссылки для flv и x- flv ...) Есть ли способ получить ссылки на видео mp4 во всех разрешениях? Спасибо JonasG
Вау, чтобы они поместили реальное видео местоположение в шапку? звучит как главный недостаток ... Gepsens
Но вы тоже используете get_url? И что такое get_headers (), это часть URL или функция? Не могли бы вы объяснить свой код словами? Я действительно хотел бы дать вам награду, мне просто нужно немного больше помощи. Спасибо JonasG
В objc гораздо больше кода, потому что там намного сложнее разбирать URL, но вы дали мне правильную идею. Награда присуждается! JonasG
Пожалуйста помоги!!! Мне нужно это знать! JonasG
1

плейлист видео.

В Linux это то, что я использовал:

у =http://www.youtube.com; е = "http://gdata.youtube.com/feeds/api/playlists/PLeHqhPDNAZY_3377_DpzRSMh9MA9UbIEN?start-index=26"; для меня в $ (curl -s $ f | grep -o "url = '$ y / watch? v = [^']'"); do d = $ (echo $ i | sed" s | url \ =' $ y / watch? v = (.) &. * '| \ 1 | "); youtube-dl --restrict-filenames" $ y / watch? V = $ d "; сделано

Вы должны найти идентификатор плейлиста из общего URL-адреса Youtube, например:https://www.youtube.com/playlist?list=PLeHqhPDNAZY_3377_DpzRSMh9MA9UbIEN

Кроме того, этот метод использует API gdata, ограничивая 25 записей на страницу.
Следовательно, параметр? Start-index = 26 (чтобы получить страницу 2 в моем примере)

Это может использовать некоторую очистку и дополнительную логику для перебора всех наборов по 25.

Кредиты:

https://stackoverflow.com/a/8761493/1069375

http://www.commandlinefu.com/commands/view/3154/download-youtube-playlist (что само по себе не совсем работает)

3

http://rg3.github.com/youtube-dl/

Просто скопируйте URL-адрес YouTube из браузера и выполните эту команду, указав URL-адрес YouTube в качестве единственного аргумента. Он выяснит, как найти лучшее качество видео и скачать его для вас.

Похожие вопросы