По този начин те предоставиха предизвикателството да се намери заобиколен начин за пускане на youtubе-ските видеа с външен плейър.
Решението което ще покажа е работещо към датата на публикуване и устройва автора като начин/удобство на употреба.
Решението се състои от 3 основни стъпки:
- firefox
- greasemonkey script
- bash script
http://kb.mozillazine.org/Register_protocol#Linux
Точка втора е създаването на greasemonkey script който да изрязва video id-то от отворената youtube страница и да го изпраща към bash скрипта. Ето скрипта който аз използвам:
// ==UserScript==
// @name Youtube Video Play to Mplayer
// @namespace http://admin-fu.blogspot.com/
// @description Play You Tube video to Mplayer
// @include http://*.youtube.com/*
// @include http://youtube.com/*
// ==/UserScript==
function youtubeIDextract(url)
{
var youtube_id;
youtube_id = url.replace(/^[^v]+v.(.{11}).*/,"$1");
return youtube_id;
}
var id = youtubeIDextract(window.location.href);
GM_openInTab("ytm://"+id);
И последната точка 3 е bash скрипта който се явява протокол хендлър за новият портокол на firefox (обяснено в точка 1). Ето скрипта:
#!/bin/bash
i=`echo "$1" | cut -d"/" -f3`
mplayer $(wget http://www.youtube.com/watch?v=$i -qO- | sed -n "/fmt_url_map/{s/[\'\"\|]/\n/g;p}" | sed -n '/^fmt_url_map/,/videoplayback/p' | sed -e :a -e '$q;N;5,$D;ba' | tr -d '\n' | sed -e 's/\(.*\),\(.\)\{1,3\}/\1/')
Предполагам ще се налага промяна в bash скрипта всеки път като youtube параноясат и решат да защитават нечии авторски права.
Няма коментари:
Публикуване на коментар