Temat: Napiprojekt
Obiecałem,
że za mediainfo dla openwrt nasmaruję dwa słowa o napiprojekcie i integracji z pyLoad
W skrócie: chodzi o to, żeby:
Po pierwsze - można było z poziomu openwrt wyszukać, pobrać i ewentualnie skonwertować do formatu SRT napisy do filmu.
Po drugie - żeby (po pierwsze) działo się automatycznie po pobraniu pliku z filmem.
napiprojekt
Bardzo obiecującą wersję linuksowego napiprojektu można znaleźć na blogu Tomasza Wiśniewskiego. Jest tam skrypt napi.sh do automatycznego pobierania napisów i subotage.sh do ich konwersji na inny format.
Trzeba będzie zainstalować kilka pakietów - jeśli nie masz extroota, to postępuj rozważnie.
opkg update
opkg install bash coreutils-stat
opkg install mediainfo
opkg install curlJeśli korzystasz z oryginalnego OpenWrt - mediainfo trzeba ściągnąć z ecco.selfip.net. Jakoś tak:
opkg install http://ecco.selfip.net/backfire/ar71xx/packages/mediainfo_0.7.50-1_ar71xx.ipkcurl (oraz libcurl) jest tu potrzebny tylko do pobrania plików z sourceforge. Jeśli nie jest potrzebny w systemie, to można je potem usunąć.
Pobieramy i instalujemy skrypty:
cd /tmp
curl -L -o napiprojekt http://sourceforge.net/projects/bashnapi/files/latest/download
tar xvzf napiprojekt > /dev/null
cp napi*/napi.sh /usr/bin
cp napi*/subotage*/subotage.sh /usr/bin
[ -f /usr/bin/napi.sh ] || echo "Brakuje napi.sh"
[ -f /usr/bin/subotage.sh ] || echo "Brakuje subotage.sh"
chmod +x /usr/bin/napi.sh
chmod +x /usr/bin/subotage.sh
rm -R napi
rm napiprojekt
sed -i -e "s/g_FpsTool[ \t]*=[ \t]*\"\"/g_FpsTool=\"mediainfo\"/" /usr/bin/napi.sh
sed -i -e "s/g_SubotagePresence[ \t]*=[ \t]*0/g_SubotagePresence=1/" /usr/bin/napi.sh
sed -i -e "s/#rm[ \t]*-rf[ \t]*\"\$g_ProcTmpFile\"/rm -f \"\$g_ProcTmpFile\"/" /usr/bin/subotage.sh
ln -s /proc/self/fd /dev/fd
cd -I już. Kawałek kodu powyżej: ściąga, rozpakowuje, instaluje i integruje najnowszą wersję skryptów.
Od tego momentu powinno działać polecenie
napi.shi różne opcje. Na przykład:
napi.sh -s -c -f subrip katalog_z_filmami powinno przejrzeć wskazany katalog i wszystkie jego podkatalogi, dla każdego znalezionego filmu dopasować odpowiednią okładkę płyty oraz napisy i skonwertować je do SRT.
Integracja z pyload
Po pierwsze - trzeba upewnić się, czy w pyload jest włączony (activated=on) plugin ExternalScripts. Albo z poziomu GUI, albo zajrzeć do /root/.pyload/plugin.conf
W katalogu /root/.pyload/scripts/download_finished/ tworzymy nowy plik - skrypt, o dowolnej nazwie. U mnie nazywa się "/root/.pyload/scripts/download_finished/napiprojekt.sh".
Zawartość pliku /root/.pyload/scripts/download_finished/napiprojekt.sh:
#!/bin/sh
#
# Napipojekt for pyLoad
NAPILOG=/tmp/napiprojekt
if [ "$NAPILOG" != "" ]; then
NAPILOG_THIS="${NAPILOG}.${$}.log"
NAPILOG_OPTION="-l $NAPILOG_THIS"
NAPILOG="${NAPILOG}.log"
fi
echo "$5"|grep -E -i "\.(avi|rmvb|mov|mp4|mpg|mkv|mpeg|wmv)$"
if [ $? -eq 0 ]; then
napi.sh -s -c -f subrip $NAPILOG_OPTION "$5"
if [ "$NAPILOG" != "" ]; then
cat "$NAPILOG_THIS">>"$NAPILOG"
rm -f "$NAPILOG_THIS"
fi
fiSkryptowi należy nadać atrybut wykonywalności:
chmod +x /root/.pyload/scripts/download_finished/napiprojekt.sh i (ważne!) zrestartować pyLoad.
Można skrypt na próbę uruchomić tak:
/root/.pyload/scripts/download_finished/napiprojekt.sh 1 2 3 4 Pelna_sciezka_do_pliku_video - jeśli dany film jest w bazie napiprojektu, to w katalogu z filmem powinny się pojawić pliki jpg, txt oraz srt. Log z działania skryptu jest zapisywany w /tmp/napiprojekt.log
A można skryptu nie uruchamiać na próbę, tylko od razu pobrać jakiś film i sprawdzić, czy pojawiły się automagicznie napisy do niego