Bezüglich YouTube Timestamps. Hatte den Fehler ja dem Hersteller gemeldet und habe im letzten Update gesehen, dass sie etwas am YouTube Embed verändert hatte und gedacht, dass es funktioniert. Allerdings habe ich nun auf Nachfrage erfahren, dass sie in dem Update das Problem noch nicht behoben haben. Ich habe mir dann angeschaut, ob ich es selbst schon mal fixen kann, bis sie es als Update ausliefern, und habe herausgefunden, warum es länger dauern könnte.
Die technische Erklärung dazu:
Spoiler anzeigen
Beim automatischen erkennen von Medien (YouTube, Twitter oder webm URLs) wird die URL genommen und in den Code zum Einbetten umgewandelt. Dabei können Teile aus der URL im Code zum Einbetten verwendet werden. Beispielsweise haben wir eine YouTube URL
Ihr seht, dass es sich schlicht um ein sogenanntes iframe handelt und dort an der Stelle
Nun zu den Timestamps: Diese hängt YouTube hinter der URL an. Dabei unterstützt YouTube zwei Format: Als Angabe in XhYmZs, also in Stunden, Minuten und Sekunden, oder einfach nur einer Zahl, welche den Zeitpunkt in Sekunden angibt. Man springt also mit
Der Parser kann aus beiden URL Formaten den Timestamp extrahieren und in den Embed Code einfügen:
Je nach Format, steht also
Ich nehme an, dass der Hersteller sagen wird, dass sie das Ausführen von Programm Code im Medien Parser auf das nächste größere Update verschieben und bis dahin YouTube Timestamps nur im Sekunden Format angegeben werden können.
Wollt ihr ein YouTube Video ab einem gewissen Zeitpunkt einfügen, müsst ihr vorerst leider die kopierte URL etwas anpassen: In der URL steht am Ende etwas wie
Die technische Erklärung dazu:
Beim automatischen erkennen von Medien (YouTube, Twitter oder webm URLs) wird die URL genommen und in den Code zum Einbetten umgewandelt. Dabei können Teile aus der URL im Code zum Einbetten verwendet werden. Beispielsweise haben wir eine YouTube URL
youtube.com/watch?v=Z0E1X6nryPU
. Diese wird automatisch erkannt und der Parser nimmt sich die Video ID, welcher hinter dem v= steht, also Z0E1X6nryPU
. Nun wird der Embed Code genommen und dort die Video ID eingefügt:<iframe [...] src="https://www.youtube.com/embed/{$ID}"></iframe>
Ihr seht, dass es sich schlicht um ein sogenanntes iframe handelt und dort an der Stelle
{$ID}
die aus der URL erfasste Video ID eingefügt wird.Nun zu den Timestamps: Diese hängt YouTube hinter der URL an. Dabei unterstützt YouTube zwei Format: Als Angabe in XhYmZs, also in Stunden, Minuten und Sekunden, oder einfach nur einer Zahl, welche den Zeitpunkt in Sekunden angibt. Man springt also mit
t=1m40s
an die gleiche Stelle wie mit t=100
, da 100 Sekunden gleich 1 Minute 40 Sekunden sind. Eine YouTube URL mit Timestamp sind dann so aus: youtube.com/watch?v=Z0E1X6nryPU&t=1m40s
oder youtube.com/watch?v=Z0E1X6nryPU&t=100
Der Parser kann aus beiden URL Formaten den Timestamp extrahieren und in den Embed Code einfügen:
<iframe [...] src="https://www.youtube.com/embed/{$ID}?start={$start}"></iframe>
Je nach Format, steht also
start=1m40s
oder start=100
dort. YouTube erlaubt aber nur das zweite Format, also die Angabe einer Zahl in Sekunden. Nun könnte man sagen: Wandelt doch einfach die 1m40s in 100 um. Sollte ja kein Problem sein. Wäre es auch nicht, wenn man im Medien Parser Programm Code einbauen könnte. Man kann aber tatsächlich nur statisch Stücke aus der gegebenen URL nehmen und in einen beliebigen festen Code zum Einbetten einfügen. Daher ist es aktuell nicht möglich, Videos mit Timestamps im XhYmZs Format korrekt einzubetten. Zeitstempel im Sekunden Format funktionieren.Ich nehme an, dass der Hersteller sagen wird, dass sie das Ausführen von Programm Code im Medien Parser auf das nächste größere Update verschieben und bis dahin YouTube Timestamps nur im Sekunden Format angegeben werden können.
Wollt ihr ein YouTube Video ab einem gewissen Zeitpunkt einfügen, müsst ihr vorerst leider die kopierte URL etwas anpassen: In der URL steht am Ende etwas wie
t=1m10s
. Das müsst ihr vorerst in Sekunden umrechnen (1m = 1 Minute = 60 Sekunden und dazu noch 10s = 10 Sekunden, also 70 Sekunden) und es ohne "m" und "s" oder ähnliches hinter das t, also t=70
, schreiben. Dann funktioniert der Timestamp. Hier beispielsweise mit t=100
:http://youtube.com/watch?v=Z0E1X6nryPU&t=100
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von ramius ()