Wie kann festgestellt werden, ob ein Youtube-Video ein tatsächliches Video oder nur ein statisches Bild ist?
Da es mit der youtube-API wahrscheinlich nicht möglich ist, gibt es eine Problemumgehung, bei der javascript / jquery verwendet wird, um Pixel in einem bestimmten Bereich des Fensters zu scannen und festzustellen, ob sie sich geändert haben?
Diese grobe Idee basiert auf der Antwort von Stihoza , ist aber viel einfacher.
Sie können Video-Miniaturbilder Ссылка erhalten. Zum Wenn zum Beispiel Video ID 500Pm4mQZQQ (statisches Bildvideo) ist, werden Sie habe diese Thumbnails:
%Vor%
Wenn diese Bilder sehr ähnlich sind, ist das Video statisch (sie sind wegen Kompressionsrauschen nicht exakt identisch). Um die drei verfügbaren Standbilder auf einfache Weise zu vergleichen, müssen Sie keine aktuellen Bildvergleichsalgorithmen anwenden. Vergleichen Sie einfach ihre Dateigrößen.
Dies sind JPEG-Bilder. Ihre Dateigröße variiert, abhängig davon, wie gut das Bild komprimiert werden kann. Ähnliche Bilder ergeben ähnliche Dateigrößen.
Die obigen Beispiele haben 3534, 3539 und 3539 Bytes. Wenn ich ein zufälliges nicht-statisches Video überprüfe, bekomme ich viel größere Unterschiede: 4179, 4726 und 4779 Bytes. Sehr ähnliche Dateigrößen = statisches Video.
Die Byte-Größe eines Bildes ist mit Javascript nicht (einfach) möglich. Aber es sollte bei jeder serverseitigen Technik trivial sein. Hier ist ein einfacher Weg mit PHP :
%Vor%Bearbeiten:
Ich habe drei "normale" Videos und drei komplett statische Videos verwendet, deren URLs im Code enthalten sind. Ich führe das Skript in der Befehlszeile aus:
%Vor%In dieser (zugegebenermaßen kleinen) Probe ist es tatsächlich möglich, die normalen (ersten drei) von den statischen (die letzten drei) zu unterscheiden.
Ein großes Problem werden Videos sein, die aus mehreren Standbildern (Slideshow) gemacht werden, was bei Musik-Uploads recht üblich ist.
Es gibt keinen offiziellen Weg zu bestimmen, ob das Video ein statisches Bild ist, aber kannst du trotzdem ein paar Tricks machen.
Sie können Video-Thumbnails http://i.ytimg.com/vi/VIDEO_ID/X.jpg
erhalten. Wenn die Video-ID beispielsweise 500Pm4mQZQQ (statisches Bildvideo) ist, haben Sie folgende Thumbnails:
Jetzt können Sie Bibliotheken für die Ähnlichkeit der Bilder verwenden, um die Ähnlichkeit der Miniaturansichten zu bestimmen. Beispielsweise können Sie diesen JavaScript-Algorithmus js-image-similarity verwenden: Ссылка
Hinweis: Diese JS-Bibliothek soll nur im neuesten WebKit funktionieren. Unterstützung für Canvas und Array.forEach ist erforderlich.
Sie können auch PHP verwenden. Lesen Sie mehr über den Algorithmus hier und überprüfen Sie auch diese PHP-Klasse: Ссылка
Nein, tut mir leid. Es gibt keine Unterstützung in den YouTube-APIs zum Abrufen von Informationen über den wiedergegebenen Audio- oder visuellen Inhalt.
Dies wird von der YouTube-API nicht unterstützt, sollte aber für HTML5-Videos möglich sein. Verwenden von HTML5 Sie können ein einzelnes Bild so kopieren, als wäre es ein Bild. Als nächstes ist es möglich, einzelne Pixel zu manipulieren.
Der folgende Code ruft Pixeldaten von einem einzelnen Frame ( video ) ab:
%Vor%Tags und Links javascript jquery youtube youtube-api