2016-10-31 3 views
1

Ich kann bestimmte YT-Videos nicht einbetten.YouTube eingeschränkte Wiedergabe Problem

Der Fehler ist Ich erhalte wie folgt:

Das Video enthält Content von VEVO, die es von der Anzeige auf dieser Seite blockiert hat.

Ich glaube nicht, es ist einfach bettet als Video beschränken ich mit Shows auf, embeded auf anderen Seiten bin Tests wie:

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

Ich bin mit dem YouTube IFRAME API die laden Video und ich habe versucht, das Video mit playervars wie "Herkunft" und "enablejsapi" ohne Erfolg einzubetten.

Beispiel:

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

Bin ich nur SOL oder ich etwas fehle?

Die Seite teste ich den Einbettungs auf ist: https://api.specivid.com/test.php

Danke.

Antwort

0

Ich denke, es würde helfen, wenn Sie Understand Playback Restrictions lesen.

Mit erweiterten Inhaltskontrollen kommt erhöhte Komplexität. Die einzige idiotensichere Möglichkeit, festzustellen, ob ein Benutzer Zugriff auf ein Video hat, lautet . Bitten Sie sie, es anzuschauen. Also, wenn Sie eine Anwendung und gerade schreiben Sie Benutzer mögen verhindern, dass Videos zu sehen, dass sie nicht die Fähigkeit haben, zu sehen, ist hier eine Liste der Dinge zu überprüfen:

  1. yt:accessControl

Videos, die zum Einbetten auf Anwendungen von Drittanbietern zur Verfügung stehen müssen folgendes:

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

Wenn yo Möchten Sie nur nach Videos suchen, die eingebettet werden können, fügen Sie format=5 zu Ihrer Abfrage hinzu.

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

Ein Video, das integrierbare ist aber nicht syndicatable auf YouTube.com oder auf anderen Seiten spielen, die die YouTube-Player einzubetten: So wie ein Video embeddable sein kann oder nicht, kann es auch syndicatable oder nicht sein aber möglicherweise nicht auf Geräten wie Mobiltelefonen oder Fernsehern spielen. Weitere Informationen zum Abrufen von Videos, die für die Wiedergabe auf Mobilgeräten geeignet sind, finden Sie im Entwicklerhandbuch.

  1. Geo Einschränkungen

Einige Videos können in bestimmten Ländern eingeschränkt werden. Diese Einschränkung gilt für den Standort des Viewers und nicht für den Standort des Drittanbieterservers.Zum Beispiel, wenn ein Video in den USA blockiert wird, wird es die folgende:

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

Wenn Sie eine Abfrage machen, können Sie eine Beschränkung Parameter hinzufügen Videos filtern, die mit einem nicht spielbar sein werden, die von einem Client spezifische IP oder aus einem bestimmten Land.

  1. yt:state

Es ist auch wichtig, die yt:state des Videos in der API-Antwort zu überprüfen. Auch wenn yt:accessControl angibt, dass Syndikation zulässig ist, kann yt:state es möglicherweise überschreiben. Zum Beispiel kann ein Video, das Syndication beschränkt hätte das Folgende: „Syndication dieses Videos beschränkt wurde von dem Content-Eigentümer“

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

Vielleicht haben Sie auch die Meldung, also auch dann, wenn der Uploader Syndication erlaubt, Der Inhaltseigentümer könnte dies überschreiben und die Syndikation nicht zulassen. Dies kann beispielsweise passieren, wenn jemand ein Video mit einem Soundtrack hochlädt, der einem anderen Rechteinhaber gehört.

  1. Mieten

Einige sind YouTube-Videos zu vermieten. Sie können sagen, dass sie Mietobjekt sind, weil sie einen media:price-Tag:

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

Beachten Sie, dass der media:price Tag nur in der Antwort enthalten ist, wenn Sie einen Entwicklerschlüssel in der Abfrage verwenden. Wenn Sie eine nicht browserbasierte YouTube-Anwendung erstellen, bei der der Nutzer kein Video ausleihen kann, möchten Sie möglicherweise die Mieten ausfiltern. Sie können dies tun, indem Sie den Parameter paid-content=false übergeben.

  1. Andere Einschränkungen nicht Zeit über die API Exposed

Es gibt noch subtile Einschränkungen, die gelegentlich ins Spiel kommen. Nicht alle davon sind derzeit über die API abfragbar. Zum Beispiel sind einige Videos nur auf bestimmten Domains spielbar. Wie ich bereits erwähnt habe, ist die einzige narrensichere Möglichkeit zu wissen, ob ein Benutzer Zugriff auf ein Video hat, wenn er versucht, es anzuschauen.

Überprüfen Sie auch die Youtube-Anleitung auf Embed a player using an <iframe> tag.

+0

Vielen Dank! Ich schätze die sehr gründliche Antwort. –

Verwandte Themen