2016-10-31 115 views
1

我無法嵌入某些YT視頻。YouTube限制播放問題

我收到的錯誤是如下:

視頻包含來自VEVO,誰已禁止在此網站中顯示的內容。

我不相信它只是限制嵌入視頻,因爲我有顯示了,在其他網站上,如嵌入式測試視頻:

http://youtubeonrepeat.com/watch/?v=fk4BbF7B29w

我使用YouTube API IFRAME加載視頻和我試圖使用playervars如「origin」和「enablejsapi」來嵌入視頻無濟於事。

例子:

var player; 
    function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'fk4BbF7B29w', 
     playerVars: { 
     'origin': 'https://api.specivid.com', 
     'enablejsapi' : 1 
     }, 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

我只是SOL還是我失去了一些東西?

頁我正在測試嵌入是: https://api.specivid.com/test.php

謝謝。

回答

0

我認爲如果您閱讀Understand Playback Restrictions會有所幫助。

隨着增強內容控件的複雜性增加。唯一的確定用戶是否有權觀看視頻的方法是 要求他們嘗試觀看視頻。所以,如果你正在編寫一個應用程序,並 你想阻止用戶看到他們沒有 觀看視頻的能力,這裏檢查的事情的清單:

  1. yt:accessControl

影片可用於嵌入在第三方應用程序將具備以下條件:

<yt:accesscontrol action='embed' permission='allowed' /> 

如果喲您只想搜索可嵌入的視頻,請將format=5添加到您的查詢中。 正如視頻可以嵌入與否,它也可以是聯合發佈與否:

<yt:accesscontrol action='syndicate' permission='allowed' /> 

視頻是嵌入但不聯合發佈在YouTube.com上或在嵌入YouTube播放器的其他網站會玩,但不能在手機或電視等設備上播放。如果您想了解更多關於檢索適合在移動設備上播放的視頻,請參閱開發人員指南。

  • 地理限制
  • 一些視頻可能在某些國家受到限制。此限制適用於查看器所在的位置,而不是第三方服務器所在的位置。舉例來說,如果視頻被阻止在美國,它具備以下條件:

    <media:restriction type='country' 
        relationship='deny'>US</media:restriction> 
    

    當您進行查詢,你可以添加一個制約參數來篩選影片,不會通過與客戶端可播放特定的IP或來自特定國家。

  • yt:state
  • 同樣重要的是,檢查視頻的yt:state API響應。即使yt:accessControl表示允許聯合,yt:state可能會覆蓋它。例如,限制了聯合視頻將有以下內容:「這個視頻的聚合是由內容所有者限制」

    <app:control> 
        <yt:state name='restricted' reasoncode='limitedSyndication'> 
        Syndication of this video was restricted by its owner. 
        </yt:state> 
    </app:control> 
    

    您還可以看到該消息,因此,即使上傳允許聯合,內容所有者可以重寫並禁止聯合。例如,如果有人上傳包含另一個內容所有者擁有的音軌的視頻,則可能會發生這種情況。

  • 線路
  • 一些YouTube視頻租賃。你可以告訴他們是租金,因爲他們有一個media:price標籤:

    <media:price type='rent' price='1.99' currency='USD' yt:duration='PT2592000S' /> 
    

    注意,media:price標籤只包含在響應如果您在查詢中使用一個開發人員密鑰。如果您正在構建基於非瀏覽器的YouTube應用程序,用戶無法租用視頻,則可能需要過濾出租費。您可以通過傳遞參數paid-content=false來實現。

  • 其他限制通過API
  • 不是目露還有更微妙的,偶爾發揮作用的限制。並非所有這些都可以通過API查詢。例如,某些視頻只能在特定的一組域上播放。正如我上面提到的,知道用戶是否有權觀看視頻的唯一方法是讓他們嘗試觀看視頻。

    另外,請查看關於Embed a player using an <iframe> tag的Youtube指南。

    +0

    謝謝!我讚賞非常徹底的迴應。 –