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:
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.
- 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.
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.
- 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.
- 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.
Vielen Dank! Ich schätze die sehr gründliche Antwort. –