sebadorn.de

API: YouTube-Player (Part 1)

Den Anfang der API-Reihe macht der YouTube-Player. Der Artikel wird ein wenig länger, weshalb ich ihn in zwei Teile aufgespalten habe. In Part 1 kommt der weniger geekige code­lastige Teil mit den Parametern. In zwei Wochen kommt in Part 2 dann der eigentliche API-Inhalt mit selbstgebastelten Bedienelementen für ein Video.

Die Code-Beispiele mit eingebundenen Videos sind eine valide und gekürzte Form dessen, was YouTube zum Rauskopieren anbietet. embed und param name="movie" entfallen, dafür steht der Verweis zum Video in object data="…". Sieht man gleich.

Parameter für das Video

fs (default 0)
Wenn auf 1 gesetzt, lassen sich Videos in den Fullscreen-Modus umschalten. Kopiert man den YouTube-Code, steht es bereits mit drin.
hd (default 0)
Wenn auf 1 gesetzt, wird das Video in HD abgespielt, insofern vor­handen. Es wird nicht automatisch die höchste Auflösung genommen! Ein Video mit 360p und 480p wählt dann nicht die höheren 480p.
iv_load_policy (default 1)

Setzt man den Wert auf 3, werden video annotations nicht angezeigt.

<object width="400" height="250"
	type="application/x-shockwave-flash"
	data="http://www.youtube-nocookie.com/v/
	jBmP7xTI_TA&amp;fs=1&amp;iv_load_policy=3">
	<param name="allowFullScreen" value="true" />
	<param name="allowscriptaccess" value="always" />
</object>

Zum Vergleich: youtube.com/watch?v=jBmP7xTI_TA

loop (default 0)
Wenn auf 1 gesetzt, startet das Video am Ende neu.
rel (default 1)
Wenn auf 0 gesetzt, werden keine verwandten Videos geladen, die u.a. nach Ende des Videos angezeigt würden.
showinfo (default 1)
Wenn auf 0 gesetzt, wird der Titel und mögliche andere Informationen (früher mal die Bewertung) nicht mehr angezeigt.
start

Dieses Video hat ein schlechtes 21 Sekunden-Intro. Mit start lässt sich der Startpunkt um die gegebene Sekundenzahl versetzen.

<object width="400" height="250"
	type="application/x-shockwave-flash"
	data="http://www.youtube-nocookie.com/v/
	Xo3Tpw-zLkM&amp;fs=1&amp;start=22">
	<param name="allowFullScreen" value="true" />
	<param name="allowscriptaccess" value="always" />
</object>


Noch ein paar mehr Parameter stehen unter YouTube Embedded Player Parameters.


Eclipse mit Pydev für Python fit machen

Seit dem 1. Semester Medieninformatik verwenden wir Eclipse für Java-Entwicklung. Jetzt im 3. Semester kam Skriptsprache Python dazu, als IDE wurde uns nur IDLE gezeigt. Mit IDLE bin ich persönlich nicht so recht warm geworden, obwohl die Python Shell davon doch recht praktisch ist für kleinere Programmfetzen. In Hinsicht auf das Eclipse-Subversion-PlugIn wäre es aber doch was Feines, könnte man auch Eclipse verwenden.

Pydev installieren

Mit dem PlugIn Pydev geht das. In Eclipse über die Menüpunkte Help ? Install New Software… gehen. Als URL http://pydev.org/updates eintragen und nach Schema F weiter durchklicken.

Pydev installieren Available Software

Read more

Media Player Classic

Nach meinen Problemen mit Untertiteln im VLC media player hat mir Friedrich in den Kommentaren eine Empfehlung gegeben. Gerade für Leute die Anime schauen eine sehr gute Lösung. Im Vergleich zum VLC läuft es reibungslos, werden Untertitel besser unterstützt und ist selbst die Videoqualität angenehmer, da weicher. Gut, hier die Ausrüstungsschritte:

Combined Community Codec Pack

Für die diversen Formate in denen z.B. ein Video daherkommen kann, braucht man die entsprechenden Codecs. Dafür empfiehlt sich das CCCP (cccp-project.net). Vor der Installation müssen andere Codec Packs entfernet werden; mit Ausnahme von DivX oder XviD. Welche davon betroffen sind bzw. ob überhaupt welche installiert sind, lässt sich mit CCCP Insurgent nachschauen. Das Programm läuft ohne Installation. Aber nicht wahllos Dinge entfernen, bei denen ihr euch unsicher seid. Wenn ihr davor bewusst keine Codec Packs installiert habt, dürftet ihr auch keine angezeigt bekommen. Solltet ihr ein Codec Pack deinstallieren, müsst ihr anschließend neustarten bevor ihr das Neue installiert.

CCCP Insurgent
CCCP Insurgent

Media Player Classic

Ist im Download des CCCP als Option mitinbegriffen. Daneben auch der Zoom Player, den ich nicht ausprobiert habe. Also einfach während der Installation ein Häkchen vor Media Player Classic und gut ist. Gegen Ende des Dialogs noch auswählen Reset all settings. [Strg]+[ENTER] = Fullscreen. Enjoy your anime.

CCCP Setup
CCCP Komponenten-Auswahl

Media Player Classic
Media Player Classic

Links

Die Downloadseite des CCCP und von CCCP Insurgent.
Die Installationsanleitung auf Englisch.


VLC media player 0.9.9

VLC media player 0.9.9 ist ein Bugfix-Release mit Decoder-Updates. Besser geworden ist dadurch leider wenig. MKV-Dateien brauchen lange zum Öffnen (die Untertitel sind es wohl mal wieder) und die CPU wird dabei belastet. Das Problem lässt sich scheinbar nur mit einem Wechsel zur vorigen Version 0.9.8 beheben.

Und noch eine Entdeckung: Die eigene Musik muss nach jedem Update neu hinzugefügt werden bzw. die alten preferences and settings – oder wie es heißt – gelöscht werden. Sonst funktioniert die Suche nach Liedtiteln nicht mehr; nur noch Album und Interpret.

Ein altes Problem, das ich hier auch noch mit reinpacke: Wenn sich eine Musikdatei im VLC plötzlich nicht mehr abspielen lässt bzw. eine Länge von 00:00 hat, hilft es die Dateiendung zu entfernen.

Ich mag das VLC-Projekt, aber mittlerweile bin ich im Videobereich auf CCCP + Media Player Classic umgestiegen; eine deutlich(!) bessere Qualität.


Videos von YouTube valide einbinden

Was YouTube einem an Code zum Einbetten gibt, ist weit davon entfernt, valide zu sein. Vermutlich, weil der Anbieter eine höchstmögliche Kompatibilität mit allen Browsern erreichen möchte. Was eigentlich ein Schlag in die Magengrube der Webstandards ist, die für eine einheitliche Darstellung in die Welt gesetzt wurden.

So ähnlich sieht der Code aus, wie YouTube ihn bereitstellt.

<object width="425" height="344">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&hl=de&fs=1">
	</param>
	<param name="allowFullScreen" value="true">
	</param>
	<param name="allowscriptaccess" value="always">
	</param>

	<embed
		src="[…]/v/NvE8XO6YH6o&hl=de&fs=1"
		type="application/x-shockwave-flash"
		allowscriptaccess="always"
		allowfullscreen="true"
		width="425" height="344">
	</embed>

</object>


Entledigen wir uns erst einmal des embed, indem wir die wichtigen Informationen in das object umsiedeln; aus dem Attribut src wird dabei data; der Rest wird bereits über param übergeben. Embed wurde von Netscape eingeführt und alle Browser haben es aufgegriffen; ein Standard wurde es nie.

<object
	width="425" height="344"
	type="application/x-shockwave-flash"
	data="[…]/v/NvE8XO6YH6o&hl=de&fs=1">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&hl=de&fs=1">
	</param>
	<param name="allowFullScreen" value="true">
	</param>
	<param name="allowscriptaccess" value="always">
	</param>

</object>


Jetzt noch anstatt & („Ampersand“) dessen Entität (&amp;) angeben und optional die param als leere Elemente kennzeichnen, ohne schließendes Tag.

<object
	width="425" height="344"
	type="application/x-shockwave-flash"
	data="[…]/v/NvE8XO6YH6o&amp;hl=de&amp;fs=1">

	<param
		name="movie"
		value="[…]/v/NvE8XO6YH6o&amp;hl=de&amp;fs=1" />
	<param name="allowFullScreen" value="true" />
	<param name="allowscriptaccess" value="always" />

</object>


Unser Ergebnis: Valides XHTML 1.0 Strict. Wer es jetzt genauer wissen möchte, den verweise ich auf diese beiden großartigen Artikel: A List Apart: Flash Satay und A List Apart: Bye Bye Embed.