Показать источник видео с YouTube в теге HTML5? - PullRequest
93 голосов
/ 01 марта 2011

Я пытаюсь поместить источник видео YouTube в тег HTML5 <video>, но, похоже, он не работает.После некоторого поиска в Google я обнаружил, что HTML5 не поддерживает URL видео YouTube в качестве источника.

Можно ли использовать HTML5 для встраивания видео на YouTube?Если нет, есть ли обходной путь?

Ответы [ 5 ]

35 голосов
/ 24 февраля 2015

Этот ответ больше не работает, но я ищу решение.

По состоянию на . 2015/02/24. существует веб-сайт (youtubeinmp4) , который позволяет загружать видео YouTube в .mp4 format, вы можете использовать это (с некоторыми JavaScript) для уйти от встраивания видео YouTube в <video> теги. Вот демо этого в действии.

Плюсы

  • Довольно легко внедряется .
  • Довольно быстрый ответ сервера на самом деле (для извлечения видео не требуется много времени).
  • Абстракция (принятое решение, даже если оно работает должным образом, будет применимо, только если вы заранее знали, какие видео вы собираетесь воспроизводить, это работает для любого введенного пользователем URL).

Против

  • Очевидно, что это зависит от youtubeinmp4.com серверов и их способа предоставления ссылки для загрузки (которую можно передать как <video> источник), поэтому этот ответ может быть недействительным в будущем.

  • Вы не можете выбрать качество видео.


JavaScript (после load)

videos = document.querySelectorAll("video");
for (var i = 0, l = videos.length; i < l; i++) {
    var video = videos[i];
    var src = video.src || (function () {
        var sources = video.querySelectorAll("source");
        for (var j = 0, sl = sources.length; j < sl; j++) {
            var source = sources[j];
            var type = source.type;
            var isMp4 = type.indexOf("mp4") != -1;
            if (isMp4) return source.src;
        }
        return null;
    })();
    if (src) {
        var isYoutube = src && src.match(/(?:youtu|youtube)(?:\.com|\.be)\/([\w\W]+)/i);
        if (isYoutube) {
            var id = isYoutube[1].match(/watch\?v=|[\w\W]+/gi);
            id = (id.length > 1) ? id.splice(1) : id;
            id = id.toString();
            var mp4url = "http://www.youtubeinmp4.com/redirect.php?video=";
            video.src = mp4url + id;
        }
    }
}

Использование (полное)

<video controls="true">
    <source src="www.youtube.com/watch?v=3bGNuRtlqAQ" type="video/mp4" />
</video>

Стандартный видеоформат.

Использование (Мини)

<video src="youtu.be/MLeIBFYY6UY" controls="true"></video>

Чуть менее распространенный, но довольно маленький, использующий сокращенный URL-адрес youtube.be и атрибут src непосредственно в теге <video>.

Надеюсь, это поможет! :)

16 голосов
/ 22 марта 2015

Тег <video> предназначен для загрузки видео в поддерживаемом формате (который может отличаться в зависимости от браузера).

Ссылки YouTube для встраивания - это не просто видео, это, как правило, веб-страницы, содержащие логику для определения того, что поддерживает ваш пользователь и как они могут воспроизводить видео на YouTube, используя HTML5 или flash, или какой-либо другой плагин на основе того, что доступно на пользователи ПК. Вот почему вам трудно использовать тег видео с видео на YouTube.

YouTube предлагает API-интерфейс разработчика для встраивания видео на YouTube.

Я сделал JSFiddle в качестве живого примера: http://jsfiddle.net/zub16fgt/

А подробнее об API YouTube можно прочитать здесь: https://developers.google.com/youtube/iframe_api_reference#Getting_Started

Код также можно найти ниже

В вашем HTML:

<div id="player"></div>

В вашем Javascript:

var onPlayerReady = function(event) {
    event.target.playVideo();  
};

// The first argument of YT.Player is an HTML element ID. 
// YouTube API will replace my <div id="player"> tag 
// with an iframe containing the youtube video.

var player = new YT.Player('player', {
    height: 320,
    width: 400,
    videoId : '6Dc1C77nra4',
    events : {
        'onReady' : onPlayerReady
    }
});
14 голосов
/ 17 марта 2011

Шаг 1: добавьте &html5=True в ваш любимый URL-адрес YouTube

Шаг 2: Найдите <video/> тег в источнике

Шаг 3: Добавьте controls="controls" к тегу видео: <video controls="controls"..../>

Пример:

<video controls="controls" 
       class="video-stream" 
       x-webkit-airplay="allow" 
       data-youtube-id="N9oxmRT2YWw" 
       src="http://v20.lscache8.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPRVRMVV9FSkNOOV9MRllD&amp;itag=43&amp;ipbits=0&amp;signature=D2BCBE2F115E68C5FF97673F1D797F3C3E3BFB99.59252109C7D2B995A8D51A461FF9A6264879948E&amp;sver=3&amp;ratebypass=yes&amp;expire=1300417200&amp;key=yt1&amp;ip=0.0.0.0&amp;id=37da319914f6616c"></video>

Обратите внимание, что некоторые элементы expire кажутся.Я не знаю, как долго будет работать строка src.

Все еще проверяю себя.

Редактировать (28 июля 2011 г.) : Обратите внимание, что это видео src относится к браузеру, который вы используете для получения источника страницы.Я думаю, что Youtube генерирует этот HTML динамически (по крайней мере, в настоящее время), поэтому при тестировании, если я копирую в Firefox, это работает в Firefox, но не в Chrome, например.

0 голосов
/ 07 ноября 2017

как насчет того, чтобы сделать hooktube ?на самом деле они не используют URL-адрес видео для элемента html5, а URL-адрес перенаправителя видео Google, который вызывает это видео.проверить вот как они представляют некоторые despacito случайных видео ...

<video id="player-obj" controls="" src="https://redirector.googlevideo.com/videoplayback?ratebypass=yes&amp;mt=1510077993----SKIPPED----amp;utmg=ytap1,,hd720"><source>Your browser does not support HTML5 video.</video>

код на следующей странице видео https://hooktube.com/watch?v=72UO0v5ESUo

1008 * YouTube в mp3 надругая рука превратилась в чрезвычайно монетизированного монстра, который теперь возвращает download.html на половину запросов на скачивание видео ... раздражает ...

2 ссылки в этом ответе относятся к моему личному опыту работы с обоими ресурсами.как hooktube хорош и свеж и на самом деле помогает избежать цензуры и географических ограничений ... посмотрите, это круто.и youtubeinmp4 - это всплывающий монстр, теперь известный как ConvertInMp4 ...

0 голосов
/ 17 марта 2011

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

Код iframe для встраивания видео YouTube выглядит следующим образом, просто скопируйте идентификатор видео и замените его в приведенном ниже коде:

<iframe type="text/html" 
    width="640" 
    height="385" 
    src="http://www.youtube.com/embed/VIDEO_ID"
    frameborder="0">
</iframe>
...