YouTube 동영상 소스를 HTML5 동영상 태그에 표시 하시겠습니까?


116

YouTube 동영상 소스를 HTML5 <video>태그 에 넣으려고 하는데 작동하지 않는 것 같습니다. 인터넷 검색을 한 후 HTML5가 YouTube 동영상 URL을 소스로 지원하지 않는다는 것을 알게되었습니다.

HTML5를 사용하여 YouTube 동영상을 삽입 할 수 있습니까? 그렇지 않은 경우 해결 방법이 있습니까?


1
아래에 stackoverflow.com/questions/5157377/…의해 제공된 IFrame 솔루션 이 해결 방법으로 충분합니다.
S Meaden

답변:


15

1 단계 : &html5=True좋아하는 YouTube URL에 추가

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문자열이 얼마나 오래 작동 할지 모르겠습니다 .

여전히 내 자신을 테스트하고 있습니다.

수정 (2011 년 7 월 28 일) : 이 동영상 소스는 페이지 소스를 검색하는 데 사용하는 브라우저에 따라 다릅니다. Youtube는 동적으로 (적어도 현재) HTML을 생성한다고 생각하므로 Firefox에서 복사하면 테스트에서 Firefox에서는 작동하지만 Chrome에서는 작동하지 않습니다.


77
만료 및 특정 브라우저에서만 작동한다는 사실은이 솔루션을 매우 쓸모 없게 만듭니다.
pjv 2011

1
모든 유튜브 비디오를 재생할 수 있습니까?
주권 Pawan Gumdal

2
YouTube는 이론적으로 언제든지 원하는 경우 모든 동영상의 기본 저장소 URL을 변경할 수 있습니다. src위 의 속성에 제공된 URL 은 장기간 작동하지 않을 수 있습니다.
Chris Peters

1
예, 유용한 정보이지만 나쁜 생각처럼 들립니다. YouTube는 언제든지 직접 비디오 링크에 대한 액세스를 닫을 수 있습니다.
Oliver Moran

36

이 답변은 더 이상 작동하지 않지만 해결책을 찾고 있습니다.

현재 . 2015/02/24. 에서 youtube 비디오를 다운로드 할 수 있는 웹 사이트 (youtubeinmp4).mp4 format있습니다.이를 악용 (일부 JavaScript 사용)하여 <video>태그에 youtube 비디오를 삽입 할 수 있습니다 . 여기 에 실제 데모 가 있습니다.

장점

  • 구현하기 매우 쉽습니다 .
  • 실제로 서버 응답이 상당히 빠릅니다 (비디오를 검색하는 데 그렇게 많이 걸리지 않습니다).
  • 추상화 (올바르게 작동하더라도 허용되는 솔루션은 재생할 비디오를 미리 알고있는 경우에만 적용 할 수 있으며 사용자 입력 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 youtu.be을 사용하여 다소 덜 일반적이지만 상당히 작습니다 .src<video>

도움이 되었기를 바랍니다. :)


좋은 기능과 Mozilla 및 Chrome에서 작동하지만 <video>의 너비와 높이가 100 %이고 높이가 200px 인 경우 비디오 너비와 높이를 설정하는 방법입니다.
Anmol Ratan Mohla

이 솔루션을 구현했지만 2 일 후 YT에서 차단했습니다. 더 이상 작동하지 않습니다. :(
apires

불행히도 더 이상 작동하지 않습니다. 예전에는 훌륭하게 작동했습니다. 나는 그것에 대한 또 다른 해결책이 있기를 바랍니다!
Chamilyan

19

<video>태그 (브라우저가 다를 수 있음)이 지원되는 형식의 영상에서 하중을 의미한다.

YouTube 삽입 링크는 단순한 동영상이 아니라 일반적으로 사용자가 지원하는 항목과 HTML5 또는 플래시를 사용하여 YouTube 동영상을 재생하는 방법을 감지하는 로직이 포함 된 웹 페이지 또는 사용자 PC에서 사용할 수있는 항목을 기반으로하는 기타 플러그인입니다. 이것이 YouTube 동영상에서 동영상 태그를 사용하는 데 어려움을 겪고있는 이유입니다.

YouTube는 페이지에 YouTube 동영상을 삽입하는 개발자 API를 제공합니다.

라이브 예제로 JSFiddle을 만들었습니다. http://jsfiddle.net/zub16fgt/

https://developers.google.com/youtube/iframe_api_reference#Getting_Started 에서 YouTube API에 대해 자세히 알아볼 수 있습니다.

코드는 아래에서도 찾을 수 있습니다.

HTML에서 :

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

자바 스크립트에서 :

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
    }
});

최근에이 문제가 발생했습니다. 전체 화면이 더 이상 iPad에서 지원되지 않습니다! jsfiddle-example은 완벽하게 설명 할 수 있습니다. PC에서는 작동하지만 iPad에서는 작동하지 않습니다. .. 나는 이것에 대해 새로운 질문을해야한다고 생각한다. 그러나 여기 누군가가 논평 할 수 있는가?
Snorvarg

1
@Snorvarg 내 대답은 HTML5 호환 브라우저에서 작동해야하며 iPad에서 다소 최신 버전의 iOS (10 이상)를 실행하는 한 작동합니다. 프로그래밍 방식으로 동영상을 제어 할 필요가없는 경우 간단한 iframe 삽입 API를 사용해 볼 수 있습니다. developers.google.com/youtube/iframe_api_reference#Examples 에서 예제를 찾 거나 vinayvasyani의 답변을 볼 수 있습니다 . 여전히 문제가 있으면 stackoverflow.com/help/how-to-ask에있는 "좋은 질문을하는 방법"지침을 사용하여 새로운 질문을 할 것 입니다.
Norman Breau

@Snorvarg Firefox에서 유사한 문제가 발생한productforums.google.com/forum/#!topic/youtube/q7cAnPlN_-Y를 발견했으며 전체 화면 권한을 요청해야했기 때문에 해결되었습니다. 그래서 나는 불행히도 iOS Safari가 지원하지 않는 것처럼 보이는 iPad에서 전체 화면이 작동하지 않는 이유라고 기꺼이 확신합니다. 다른 해결책은 자신의 전체 화면 버튼을 추가하고 iframe 플레이어의 크기를 화면의 너비 / 높이로 조정하는 것입니다.
Norman Breau

1
귀하의 팁과 링크에 감사드립니다. 나는 며칠 전에 여기에 질문을 추가했습니다. stackoverflow.com/questions/49650040/… 그러나 잠시 후 귀하가 제안한대로 내 자신의 전체 화면 버튼을 만들기로 결정했고 제대로 작동합니다.
Snorvarg

좋은 물건, 그러나 나는 오류에 달렸다 "형식 오류 : YT.Player 생성자 아니다"여기에서 설명한대로 : stackoverflow.com/questions/52062169/...을 . (유일한) 답변에서 지적했듯이 비동기 스크립트로드 및 API 호출시 아직 준비되지 않은 결과입니다. 이는 onYouTubeIframeAPIReady함수 를 구현하고 위 코드의 마지막 코드 블록을 그 안에 넣음으로써 피할 수 있습니다 .
jakob.j


-3

hooktube가하는 방식으로 하는 것은 어떻습니까? 실제로 html5 요소에 동영상 URL을 사용하지 않지만 해당 동영상을 호출하는 Google 동영상 리디렉터 URL을 사용합니다. 여기 그들이 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입니다.

반면에 youtube to mp3 는 비디오 다운로드 요청의 절반에 대해 download.html을 반환하는 매우 수익을 창출하는 괴물로 변했습니다.

이 답변의 두 링크는 ​​두 리소스에 대한 개인적인 경험에 대한 것입니다. hooktube가 멋지고 신선하고 실제로 검열과 지리적 제한을 피하는 데 도움이되는 방법 .. 확인해보세요. 꽤 멋지네요. youtubeinmp4는 현재 ConvertInMp4로 알려진 팝업 몬스터입니다.


-6

웹 사이트에 새 iframe 태그가 삽입되면 코드가 HTML5를 지원하는 브라우저를 사용하는지 여부를 자동으로 감지합니다.

YouTube 동영상을 삽입하기위한 iframe 코드는 다음과 같습니다. 동영상 ID를 복사하고 아래 코드로 바꾸면됩니다.

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

23
"새" iframe태그? iframe
Zearin

11
이것은 답변에 대한 해결책이 아닙니다. iframe이 아니라 동영상 태그를 명확하게 표시합니다 ...
TGarrett

7
어쩌면 OP는 iframe태그 의 존재에 대해 몰랐을 수도 있고 그래서 그가 video태그 에 대해 직접 물어 본 이유 입니다. 그렇지 않으면 그는 HTML5 (일반적으로)가 Youtube 비디오를 지원하는지 묻지 않았을 것입니다. 그러나 그는 그 질문을 video태그로 제한했을 것 입니다. 그는 심지어 "해결책이 있습니까?"라고 물었습니다. 그의 마지막 문장에서,이 대답은 완벽하게 유효합니다.
Daniel Muñoz Parsapoormoghadam

1
내 blogger.com 블로그에 youtube.com 동영상을 삽입하려면 iframe이 유일한 편리한 솔루션입니다. 또한 youtube.com에서 생성하는 소스 코드는 iframe 태그입니다. 또한 w3schools.com은 iframe을 권장합니다 : http://www.w3schools.com/html/html_youtube.asp . 동영상 태그가 언급되지 않은 경우.
noobninja

1
누군가가 궁금하다면 ... YouTube 동영상을 삽입하는 공개 URL이 실제 미디어 리소스가 아니기 때문에 동영상 태그를 사용하는 것이 YouTube 동영상에 적합한 접근 방식이 아닙니다. 그래서 iframe 사용을 제안하는 사람들이 있습니다. 동영상 태그를 사용하면 향후 변경 될 수있는 비공개 URL을 사용하게됩니다. 객체 지향 언어로 개인 멤버에 액세스하려는 것과 같습니다. 당신은 YouTube의 공식 여기 문서를 볼 수 있습니다 developers.google.com/youtube/iframe_api_reference#Examples
노먼 Breau
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.