Podcasty i Amiga cz.II – MediaVault

Pisząc przed dwoma laty podsumowanie artykułu o obsłudze podcastów na Amidze robiłem to raczej w minorowym nastroju, postulując stworzenie zupełnie nowego klienta podcastów, na co jednak trudno było liczyć biorąc pod uwagę delikatnie rzecz ujmując dosyć skromne wsparcie dla Amigi przez tego typu oprogramowanie na przestrzeni lat. Jak więc mogliście przeczytać, mieliśmy do dyspozycji zaledwie jedno mocno przeterminowane narzędzie w postaci nierozwijanego AmiPoddera, równie przeterminowaną wtyczkę, do jeszcze bardziej przeterminowanego browsera WWW oraz możliwość kombinowania poprzez wykorzystywanie możliwości różnych stron pośredniczących.

W ostatnim czasie sytuacja zmieniła się jednak na plus, dlatego pokusiłem się o dopisanie drugiej części dla wspomnianego artykułu. Pozytywną zmianę zawdzięczamy pracy George’a Sokianosa, który stworzył program MediaVault. Aplikacja zadebiutowała już wiosną tego roku, jednak wówczas nie przyciągnęła mojej uwagi, gdyż jej zasadniczą funkcją była bardziej komfortowa obsługa radia internetowego dla odtwarzacza AmigaAmp. Ponieważ od lat z powodzeniem do tego celu używam odtwarzacza TuneNet, gdzie mam zapisane swoje ulubione stacje radiowe i z którego działania jestem generalnie zadowolony, nie skusiłem się na instalację omawianego narzędzia. Jednakże jak w przypadku każdej interesującej amigowej nowości, postanowiłem przyglądać się jej rozwojowi z zainteresowaniem.

MediaVault – lista stacji radiowych.

Czynnikiem, który przesądził, że już najwyższy czas, by przeprowadzić testy praktyczne była informacja o wsparciu dla swobodnego przeszukiwania podcastów, która pojawiła się wraz z wersją 1.4.0. Pierwszą rzeczą, która od razu rzuciła mi się w oczy, była praktycznie totalna „bezkonfiguracyjność” programu. My Amigowcy często lubimy się chwalić, jaka to nasza platforma jest przyjazna w obsłudze, jednak fakty są takie, że niemal zawsze trzeba gdzieś podać jakąś ścieżkę dostępu, ustawić coś w tooltypach ikony czy przeprowadzić wstępną konfigurację danego narzędzia. Media Vault v 1.4.0 był przykładem aplikacji, z której obsługą poradzi sobie nawet człowiek, pierwszy raz w życiu trzymający myszkę w ręku. Aby swobodnie korzystać z Media Vault nie musieliśmy robić zupełnie niczego wcześniej, oczywiście trzeba było mieć zainstalowanego AmigaAmpa v3, no ale jakoś trudno mi sobie wyobrazić Amigowca, który nie miałby tego legendarnego playera na swoim dysku. O ścieżkę dostępu nie było potrzeby się martwić MediaVault sam znajduje program, korzystając z systemowego AppDir. Przy okazji dodam, że AmigaAmpa, mam w katalogu zawierającego polskie znaki, konkretnie w katalogu „Rafał”, a polskie ogonki wciąż jeszcze potrafią sprawiać problemy w przypadku niektórych niedopracowanych aplikacji, ale nie ma o tym mowy w przypadku opisywanego narzędzia.

Jak zauważyliście pisałem trochę w czasie przeszłym, bo autor tej aplikacji Georgios „Walkero” Sokianos działa szybko i w ciągu zaledwie kilku dni udostępnił kolejną odsłonę, oznaczoną numerem 1.4.1. W tej wersji po raz pierwszy pojawił się skrypt startowy, który z jednej strony może choć nie musi (jeśli chcemy pozostawić AmigaAmpa, jako odtwarzacz domyślny) powodować minimalne zaangażowanie użytkownika w konfigurację programu, Z drugiej jednak daje nowe możliwości w postaci wyboru domyślnego odtwarzacza między narzędziami takimi jak AmigaAmp, FFPlay bądź Emotion. Domyślny skrypt dołączony przez autora jest rozwiązaniem tymczasowym, gdyż w przyszłości George planuje załatwić sprawę w „bardziej cywilizowany sposób” poprzez dodanie do MediaVault stosownej zakładki preferencyjnej. Obecna metoda jest dla użytkownika średnio wygodna, gdyż powala jedynie na sztywno przypisać preferowany przez użytkownika odtwarzacz, a każda zmiana w tym zakresie wymaga dokonania zmian w skrypcie. Jak to często bywa zaangażowanie społeczności dosyć szybko pozwoliło zlikwidować tę niedogodność i Kevin Taddeucci z forum Amigans.net zaproponował swoją wersję skryptu, którą prezentuję poniżej:

;
; File: start_player
;
; Version 1.2
;
; Copyright (c) 2021, Georgios Sokianos
;
; This file is part of MediaVault
;
; Author: Georgios Sokianos (walkero@gmail.com)
; Date: October 2021
;
; Modified by Kevin Taddeucci (ktadd)
; Date: Oct. 10th, 2021
; Made it easier to change players by setting a player variable.
; Added showmode 1 option to ffplay to display audio waves.
;
; Date: Oct. 11th, 2021
; Added ability to show requester to choose player.
; Changed error messages so they display in a requester.
;
; Summary of File:
;
; This file contains code that is used to start
; user’s preferred player. So, instead using a
; default player, MediaVault now executes this
; script, passing the URL of the source. User is
; able to change this script and make it work
; on his system as he wants.
; Set the variables in the „User Settings” area below.
;
; This file is a sample and not used by
; MediaVault.
; You have to copy/rename it to: start_player
; Place this script in the MediaVault/scripts directory..KEY url/A
.BRA {
.KET };================ User Settings ================
;
; Choose the audio player by setting „player” to one of the following:
; 0 = Emotion
; 1 = AmigaAmp3
; 2 = ffplaySET player 1; Choose to show a requester to select player when ‚Play’ is clicked.
; 0 = Do not show requester.
; 1 = Show requesterSET show_req 1; (Note: player setting above will be overriden if requester is used.)

;========== Edit below this line at your own risk ==========

If NOT „{url}” EQ „”

if $show_req EQ „1”

SET player `RequestChoice „MediaVault Player Select” „Select program to play stream…*N*NTo disable requester:*NSet ‚show_req’ in ‚Start_Player’ script to 0.*N*N(Requester will auto close in 3 seconds!)” „AmigaAmp3” „ffplay” „Emotion” TYPE QUESTION TIMEOUTSECS 3`

;if requester timed out, set to AmigaAmp3
if $player EQ „-1”
Set player 1
Endif

Endif

If $player EQ „0”
If EXISTS APPDIR:emotion
Set emotionPID `Status COM=APPDIR:emotion`
If VAL $emotionPID GT 0
Break $emotionPID
EndIf
Run <>NIL: APPDIR:emotion „{url}”
EndIf
Endif

IF $player EQ „1”
If EXISTS APPDIR:AmigaAmp3
Run <>NIL: APPDIR:AmigaAmp3 „{url}”
EndIf
ENDIF

If $player EQ „2”
If EXISTS APPDIR:ffplay
Set ffplayPID `Status COM=APPDIR:ffplay`
If VAL $ffplayPID GT 0
Break $ffplayPID
EndIf
Run <>NIL: APPDIR:ffplay -showmode 1 „{url}”
EndIf
Endif

If $player GT „2”
RequestChoice „MediaVault Player” „Error in ‚start_player’ script!*N*NInvalid player selected!” „OK” TYPE ERROR
Endif

Else
RequestChoice „MediaVault Player” „Error in ‚start_player’ script!*N*NNo URL detected!” „OK” TYPE ERROR
EndIf

Zalety tej wersji start_player są takie, iż nie musimy w nim nic grzebać, by mieć stały dostęp do wszystkich trzech odtwarzaczy. Zatem po wybraniu przycisku play w MediaVault, na krótki czas pojawia się requester pozwalający na wybór jednego z trzech playerów, jeśli nie zrobimy nic po upływie 3 sekund uruchamia się odtwarzacz domyślny. Oczywiście krótka analiza skryptu pozwala dojść do wniosków, że łatwo można go zmodyfikować pod kątem własnych preferencji (np. wyłączając pojawienie się requestera lub zmieniając czas długości jego wyświetlania).

MediaVault requester pozwalający na wybór preferowanego odtwarzacza.

Tak jak pisałem początkowo MediaVault był pomyślany jako poszerzenie ergonomii obsługi radia internetowego, która w przypadku AmigaAmpa nie jest na najwyższym poziomie. Przetestowałem więc na szybko jak to sprawuje się w praktyce i odniosłem wrażenie, że przynajmniej w niektórych aspektach wygląda to nieco lepiej niż w przypadku TuneNet. Przede wszystkim mamy do dyspozycji wyświetlanie najpopularniejszych stacji z ostatnich 24 godzin oraz widzimy liczbę oddanych na nie głosów, czego akurat nie wyświetla TuneNet. Odrobinę lepiej wygląda też sprawa filtrowania stacji po kategoriach, których w przypadku MediaVault jest 28 (TuneNet oferuje ich 26). Nie będę jednak zagłębiał się obszerniej w kwestię obsługi radia, gdyż tu od lat Amigowcy mają względnie komfortową sytuację, zdecydowanie większą bolączką dla użytkowników AmigaOS była obsługa podcastów, więc czym prędzej przeszedłem do tej sekcji programu.

Jej centralną częścią jest wyszukiwarka, nie zastanawiając się długo wpisałem frazę „Amiwigilia”. Wyskoczyły dwa wyniki, pierwszy dla podstacja.com, gdzie najnowszym wyświetlonym odcinkiem był ten z lutego 2021 na temat powstającej gry „Wilcza Buda„, po skorzystaniu z przycisku „play” automatycznie uruchomiał się stream bezpośrednio ze strony podcastu odtwarzany przez domyślny odtwarzacz AmigaAmp. Jeszcze lepiej było w przypadku skorzystania z drugiej pozycji na liście, wówczas w oknie listy odcinków pojawiły się wszystkie pozycje, czyli aż do sierpniowego Wydania Specjalnego numer 35. Dodatkowo w stosownym polu pojawiła się grafika przedstawiająca logo podcastu. Dodam, że z opcji wyszukiwania nie musimy korzystać wyłącznie wpisując tytuł danego cyklu audycji, spokojnie możemy też szukać np. po nazwisku autora. Zatem wpisując frazę „Radzikowski” otrzymamy wyniki w postaci podcastów Future 4.0, Apple Arcade, AmiWigilia oraz AMIcast.

MediaVault – podcast Amiwigilia odtwarzany za pomocą AmigaAmp.

Sprawdziłem też pozostałe omawiane wcześniej podcasty, czyli audycje zarówno Adama Mierzwy, jak i Adama Zalepy. Tutaj sprawa komplikuje się o, tyle że oba korzystają ze streamów za pośrednictwem serwisu Anchor.fm, który pisałem przed dwoma laty, nie był specjalnie przyjazny wobec amigowych przeglądarek WWW, czy też amigowego klienta AmiPodder. Na szczęście MediaVault korzysta z protokołu SSL, a więc szyfrowane streamy https, nie stanowią tutaj żadnej bariery. Niestety nie wszystko wygląda kolorowo, owszem możemy słuchać streamu, jednak zapomnijmy o nawigacji, typu pauzowanie czy przewijanie materiału. Nie można też danego odcinka po prostu pobrać na dysk, choć oczywiście AmigaAmp posiada opcję rejestrowania materiału, więc w ostateczności możemy go nagrać sekunda po sekundzie w trakcie słuchania.

Bardziej dogłębne testy uwidoczniły niestety bardziej poważne wady tandemu MediaVault + AmigaAmp. Najbardziej znany odtwarzacz powstawał jeszcze w latach 90-tych i był pomyślany głównie jako player popularnych „empetrójek”, które w owym czasie były masowo gromadzone na dyskach CD-ROM. Oczywiście przez te niemal ćwierć wieku mocno się rozwinął, również o opcje sieciowe w tym obsługę i rejestrację streamów, a jednak przy odtwarzaniu podcastów widać braki i zaszłości. AmigaAmp ma po prostu słabą kompatybilność zwłaszcza z materiałami korzystającymi z bardziej zaawansowanych platform, takich jak wspomniany Anchor.fm. Owszem początkowo poprawnie je odtwarza, lecz po pewnym czasie, zazwyczaj po upływie około 5 minut, następowało u mnie zapętlenie materiału, który zaczynał być odtwarzany od nowa. Cóż niemal każdy odcinek każdego podcastu trwa dłużej niż 5 minut, co w przypadku braku możliwości przewijania materiału, a więc powrotu do momentu, w którym nastąpiła przerwa w odtwarzaniu oznacza tylko tyle że stosując AmigaAmpa nie jesteśmy w stanie odsłuchać miażdżącej większości audycji do końca.

Na szczęście w przypadku pozostałych odtwarzaczy jest tylko lepiej, choć nie będę ukrywał, że przy testowaniu kolejnych rozwiązań też miałem kilka przygód i zajęło mi trochę czasu, by dojść do odpowiedzi na pytania „co, jak i dlaczego„. Zainstalowany na moim twardym dysku FFPlay, spokojnie radził sobie z AmiWigilią Radzika, zamieszczoną na serwerach PPA, lecz odmawiał posłuszeństwa w przypadku podcastów np. Adama Mierzwy czy też innych zamieszczonych na platformie Anchor.fm. Tutaj na szczęście wina leżała wyłącznie po mojej stronie. Po prostu używałem a w zasadzie używam nadal pakietu FFMPEG w wersji 2.7.5, z tej przyczyny, że przy konwersji filmów starsza odsłona jest zwyczajnie szybsza względem ostatniej dostępnej wersji 4.2.1. Po podmianie leciwej „dwójki” na najnowszą odsłonę FFPlay podcasty, również te „anchorowskie” ruszyły bez najmniejszych problemów. Przetestowałem kilka losowo wybranych audycji, wszystkie odtworzyły się poprawnie do końca bez efektu restartu. Problemem jest wygoda nawigacji, jak wiadomo FFPlay nie posiada żadnego GUI, zatem możemy posługiwać się jedynie skrótami klawiszowymi. Dla przypomnienia klawisze kursora lewo prawo to przewijanie, tył przód o 10 sekund, strzałka w górę, dół to przewijanie materiału o minutę, a PageUP, PageDown to skok o 10 minut. Niestety FFplay nie potrafi wyświetlać „okładek” podcastów, jedynie klawiszem „W” możemy przełączać formę graficznej prezentacji dźwięku.

MediaVault i FFplay z różnymi formami wizualizacji dźwięku.

Teoretycznie najlepszą i najwygodniejszą opcją jest komercyjny Emotion, no i tak jest w istocie, choć niestety w moim przypadku znowu pojawił się problem związany z wersją programu. Przy czym tym razem, miałem zainstalowane wszystko zgodnie z zasadami sztuki, co oznacza, że na twardzielu znajduje się najnowsza odsłona 1.9, która jak wiadomo na kartach Polaris szczyci się sprzętową akceleracją wideo. Ta akceleracja w przypadku podcastów audio na nic się nie zda, a co gorsza jak się okazuje, najnowsza wersja odtwarzacza powoduje konflikty z częścią podcastów (na szczęście z niezbyt dużą częścią). Jako że najbardziej popularnym polskojęzycznym cyklem audio traktującym o Amidze jest Amiwigilia, w sposób naturalny wybrałem go jako bazowy materiał, od którego rozpoczynałem wszystkie testy. Niestety okazało się, że audycje Radzika należą właśnie do takich konfliktowych podcastów. Efekt był więc taki, że żaden stream Radzika (nieważne czy nadawany z PPA Amicast, czy przekazywany via Anchor Future 4.0) nie był odtwarzany. Widać było wyraźnie, że Emotion coś próbował przetworzyć, gdyż zajętość procesora wzrastała w okolice 60% (czyli ponad 10 razy więcej niż np., przy odtwarzaniu filmów FullHD), jednak z głośników wybrzmiewała jedynie cisza. Po wielu różnych eksperymentach, polegających między innymi na usuwaniu różnych bibliotek, z których korzysta ten odtwarzacz (co ostatecznie okazało się fałszywym tropem), uznałem, że Emotion 1.9 zwyczajnie nie jest najbardziej kompatybilnym odtwarzaczem dla podcastów. Niemniej jeśli chodzi o ergonomię pracy nie ma sobie równych, szukając więc złotego środka znalazłem sposób w postaci dodatkowej instalacji starszej wersji Emotion i odpowiednim przypisaniu jej do skryptu. Okazuje się bowiem że poprzednia wersja Emotion, czyli 1.1 nie ma najmniejszych problemów z jakimkolwiek materiałem audio przesyłanym online, a przynajmniej ja podczas intensywnych testów nie znalazłem powodów do narzekań.

MediaVault we współpracy z Emotion, czyli wygodny panel nawigacyjny i wyświetlanie plansz tytułowych.

Oczywiście nie namawiam nikogo do zamiany nowej wersji Emotion na starszą, a zwłaszcza nie namawiam do tego posiadaczy kart graficznych Radeon RX. Zdaję sobie sprawę, że przeciętny użytkownik jednak znacznie częściej będzie używał tego narzędzia do odtwarzania filmów niż odsłuchu streamów audio, a zalety Emotion 1.9 w postaci wsparcia dla UVD są tutaj nieocenione. Niemniej jak wspomniałem można dograć sobie starszą wersję nazywając ją np. Emotion_old, zmodyfikować odpowiednio skrypt MediaVault by był „wilk syty i owca cała”. Pomijając niedogodność w postaci kombinowania z wersjami, jak pisałem wcześniej Emotion jest najwygodniejszą opcją we współpracy z bohaterem tej recenzji. Podobnie jak FFplay dobrze radzi sobie (w wersji 1.1) z wszelkimi podcastami, jednak góruje nad nim wygodnym w obsłudze GUI wyposażonym w suwak swobodnego przewijania materiału. Wreszcie pozwala też na wyświetlanie planszy tytułowej podcastów (choć akurat nie w przypadku Amiwigilii). Zatem każdemu, kto kupił Emotion i nie ma problemu z odtwarzaniem ulubionych streamów (tudzież w wypadku tych problematycznych zastosował metodę „old_Emotion”) gorąco tę opcję polecam.

Podsumowanie
Po wieloletnim okresie coraz bardziej dokuczającego marazmu, na reszcie pojawiło się światełko w tunelu pozwalające z optymizmem patrzeć w przyszłość związaną z obsługą podcastów na Amidze. Oczywiście do pełni szczęścia sporo jeszcze brakuje, przede wszystkim możliwości tworzenia i zapisywania listy ulubionych audycji oraz ich bieżącego monitorowania i notyfikacji informującej o nowych odcinkach. Jednak zaangażowanie autora, które możemy nagrodzić drobną darowizną, stawiając mu przysłowiową kawę, pozwala mieć dużą nadzieję, że MediaVault, wkrótce wzbogaci się nowe przydatne dla użytkowników funkcjonalności.

O Mufa