Sleipnir にてとうとう YouTube 本家でもシークバーが出なくなった件

やれやれだぜ

Sleipnir において一部のYoutube埋め込み動画でシークバーが出ない現象に対処してみた
以前、上の通り埋め込み動画でシークバーが出ないというエントリを書きましたが、今回はついに YouTube.com でもシークバーが出なくなってしまいました。
そのエントリにも書いてますが埋め込みのほうでシークバーが出なくなったのが昨秋だったし、もしかすると約1年経ったということで YouTube.com のプレーヤーも新しくなったのかな?
なんかTridentコンポーネントYouTubeはずっと以前から相性悪い感じですね。*1

一応の解決方法

フェンリルデベロッパーズブログに暫定的ですが回避方法が書いてありますね。
Sleipnir / Grani で YouTube のシークバーが表示されない現象について
Feather と呼ばれる高速軽量版(β)にすると良いとかなんとか。*2

あと、t_o さん曰く一部対応していない動画があるらしいです。

某所が Youtube のシークバー消失の件で盛り上がっているから… 軽量ベータ版のこと教えてあげて (一部軽量版に対応していない動画は駄目みたいですが) http://www.youtube.com/feather_beta

http://twitter.com/t_o/status/246123231306727424


ちなみに根は最初に記したエントリと一緒っぽいので、同じアプローチでも回避できたりします。
YouTubeOldPlayer.user.js

// ==UserScript==
// @name         YouTube Old Player
// @include      http://www.youtube.com/watch?*
// ==/UserScript==

(function() {
	var d = document, cE = "createElement";
	var lnk = d.getElementsByTagName("link");
	for(var i = 0, len = lnk.length; i < len; i++) {
		if(lnk[i].rel.match("shortlink")) {
			lnk = lnk[i].href.replace(/^http:\/\/youtu\.be\//, "");
			break;
		}
	}
	var mp = d.getElementById("movie_player");
	var obj = d[cE]("object");
	obj.width = mp.width;
	obj.height = mp.height;
		var prm1 = d[cE]("param");
		obj.appendChild(prm1);
		prm1.name = "movie";
		prm1.value = "http://www.youtube.com/v/" + lnk + "?version=3&amp;hl=ja_JP";
		var prm2 = d[cE]("param");
		obj.appendChild(prm2);
		prm2.name = "allowFullScreen";
		prm2.value = "true";
		var prm3 = d[cE]("param");
		obj.appendChild(prm3);
		prm3.name = "allowscriptaccess";
		prm3.value = "always";
		var emb = d[cE]("embed");
		obj.appendChild(emb);
		emb.src = "http://www.youtube.com/v/" + lnk + "?version=3&amp;hl=ja_JP";
		emb.type = "application/x-shockwave-flash";
		emb.width = mp.width;
		emb.height = mp.height;
		emb.allowscriptaccess = "always";
		emb.allowfullscreen = "true";
	mp.parentNode.insertBefore(obj, mp);
	mp.parentNode.removeChild(mp);
	obj.id = "movie_player";
}());

発想的には cocoa さんのNicoGaipuと一緒ですね。

Sleipnir 3 は現状では Trident でユーザスクリプト使えないので Feather 使うか、WebKit で見るかしてください。*3
Sleipnir 3 は WebKit はともかく Trident はユーザがどうにか出来る余地が皆無に近いので、せめて SeaHorse と UserAction は早く出して欲しいところですな。*4

*1:プレイリストの件とか

*2:ちなみに私は Feather が公開された時は使ってたけど、OSとか色々弄りすぎてて慢性的に不安定で「BSODCookie 吹っ飛ぶ」みたいなコンボをよくたたき出しているので毎度変えるの面倒でやめたんだったかな?w

*3:一応、上記スクリプトブックマークレット化すれば動くとは思うんだが試してない

*4:実際、出すかどうかすら分からんけど