sobota, 14 maja 2016

NanoPlayer - prosty odtwarzacz YouTube

Od jakiegoś czasu szukałem małej aplikacji, która umożliwiałaby odtwarzanie zawartości YouTube niezależnie od przeglądarki. Tak wiem, są tego typu aplikacje jak SMTube, a niektóre aplikacje audio-wideo umożliwiają również odtwarzanie tych zawartości. Aplikacja miała mieć możliwość prostego wyszukania treści w serwisie i jego odtworzenia. SMTube niby to oferuje, ale tak na prawdę jest to tylko niezależna od przeglądarki internetowej wyszukiwarka zawartości YouTube, która dla odtworzenia filmów wymaga już SMPlayer. Trudno to uznać za rozwiązanie "małe". Udało mi się znaleźć NanoPlayer, który spełnia w zasadzie wszystkie moje wymagania pomimo swej bardzo wczesnej jeszcze wersji. Nadto oferuje blokowanie reklam.
Po kilku podejściach do PKGBUILDu prezentuję skrypty, które umożliwiają zbudowanie tej aplikacji. Test namcap wykaże, że plik wykonywalny nie znajduje się w swej "zwykłej" lokalizacji. Fakt. Dzieje się tak dlatego, że aplikacja z jakiegoś powodu musi swoje komponenty zawierać w jednym katalogu, czego nie powinno się robić tworząc jakiś katalog w /usr/bin. Wylądowała zatem w opt.
PKGBUILD:
# Maintainer: pavbaranov

pkgname=nanoplayer
pkgver=0.1b
pkgrel=2
pkgdesc="Extremely simple YouTube video viewer with adblock support"
arch=('i686' 'x86_64')
url="http://nanoplayer.sourceforge.net/"
license=('GPL2')
depends=('qt5-webkit')
makedepends=('imagemagick')
optdepends=('gst-libav' 'gst-plugins-ugly' 'gst-plugins-bad')
source=(http://sourceforge.net/projects/nanoplayer/files/NanoPlayer.zip/download
        $pkgname.desktop)
md5sums=('1a461d4384df09c7f19a1d1eac5ec23f'
         '9f720ce8442af33c2204a730b8bdc62c')

prepare() {
    cd $srcdir/NanoPlayer
    for i in *.ico; do convert "$i" "$i.png"; done
    mv NanoPlayer.ico.png nanoplayer.png
}

build() {
    cd ${srcdir}/NanoPlayer
    qmake-qt5 NanoPlayer.pro PREFIX=/usr
    make       
}

package() {
  install -Dm755 "${srcdir}"/NanoPlayer/NanoPlayer/NanoPlayer "${pkgdir}"/opt/NanoPlayer/nanoplayer
  install -Dm644 "${srcdir}"/NanoPlayer/data/filters.txt "${pkgdir}"/opt/NanoPlayer/data/filters.txt
  install -Dm644 "${srcdir}"/NanoPlayer/nanoplayer.png "${pkgdir}"/usr/share/pixmaps/nanoplayer.png
  install -Dm644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
  mkdir -p "${pkgdir}"/usr/bin 
  ln -s /opt/NanoPlayer/nanoplayer "${pkgdir}"/usr/bin/nanoplayer
  }

nanoplayer.desktop
[Desktop Entry]
Type=Application
Name=NanoPlayer
GenericName=YouTube Player
Exec=/opt/NanoPlayer/nanoplayer
Icon=/usr/share/pixmaps/nanoplayer.png
Categories=AudioVideo

Po ściągnięciu tych plików, a przed wywołaniem komendy makepkg proszę wydać polecenie:
updpkgsums
Mam nadzieję, że i Wam się przyda.

EDIT:
Do poprawnego wyświetlania zawartości z YT potrzebne jest zainstalowanie pluginów gstreamera: bad, ugly i libav. Są one w optdepends, albowiem kod programu nie wymaga ich do swego zbudowania, ani do uruchomienia samego programu. Bez tych opcjonalnych zależności program nie będzie jednak wyświetlał treści i dekodował dźwięku. Powyżej już zmieniony PKGBUILD, ale sama instalacja paczki jedynie poinformuje o opcjonalnych zależnościach, które trzeba doinstalować odrębnie.