Skocz do zawartości
HDev

Konstrukcja serwisów internetowych – dla developerów

Rekomendowane odpowiedzi

Zasady działania systemu są zbliżone, chwilami identyczne dla wielu odtwarzaczy. Oprócz Hyundaia, także dla odtwarzaczy EGreat, PlayOn!, Iamm i oczywiście Xtramer, dla którego stworzono największą ilość aplikacji i rozszerzeń. Poszczególne odtwarzacze różnią się pod względem dodatkowych bibliotek zainstalowanych w systemie. Np. Xtreamer ma PHP używane przy implementacji bardziej zaawansowanych rozszerzeń. Bazowa funkcjonalność jest wspólna. W pełni otwarte i dostępne serwisy dostępne są w Xtramerze, od teraz także w MBoxach Hyundaia, być może jeszcze w jakiś innych nieco mniej popularnych w Polsce urządzeniach. W innych ingerencja w serwisy wymaga ingerencji w oprogramowanie i/lub filesystem urządzenia, co jest nieco skomplikowane dla większości „normalnych” użytkowników.

Dalszy opis odnosi się do polskich serwisów IMS v.1.0, opublikowanych innym wątku na tym podforum.

Źródła: Plik RAR

Serwisy internetowe sterowane są plikami (skryptami) RSS (xml) które są interpretowane i wykonywane przez odtwarzacz. Plikiem startowym, uruchamianym przy wejściu w serwisy z menu odtwarzacza jest menu.rss.

Przy zgłębianiu działania skryptów bardzo przydatna będzie strona stworzona dla Xtreamera

Nie jest ona jednak kompletna, podane informacje (opisy atrybutów) nie zawsze są właściwe dla odtwarzaczy Hyundai. Podczas prac okazuje się także że część atrybutów działa warunków, zależnie od czegoś innego, co w wielu wypadkach oznacza błędy lub niedopracowanie interpretera w odtwarzaczach. Dlatego wszelkie prace opierają się w duże mierze na metodzie prób i błędów. System nie powstawał od początku z myślą o jego otwarciu, w jądrze interpretera zapewne maczali palce programiści Realteka.

W plikach RSS można częściowo używać kodu pisanego w javascript. Polecam przejrzenie kodu gry MasterMind lub plików z interfejsem radia np. radio_zet.rss

Podstawowa struktura plików RSS jest dość prosta, odtwarzacz obsługuje trzy typy widoków definiowane w sekcji <mediaDisplay> przez atrybut name: photoView, threePartView, onePartView. Dwa ostatnie są dość zbliżone.

Każdy plik powinien zawierać sekcję <channel> w niej może wystąpić wiele sekcji <item> opisujących referencje do plików medialnych lub do innych plików RSS zawierających opis kolejnych części interfejsu.

Rozszerzone sekcje nagłówka pliku pozwalają na umieszczanie na ekranie stałych elementów – opisów (sekcja <text> i grafik). Więcej przykładów w pliku z interfejsem radia np. radio_zet.rss.

Dla całego projektu duże znaczenie ma serwis www.metafeeds.com, gdzie użytkownicy zdefiniowali setki kanałów RSS z linkami do treści, głównie Wideo ale nie tylko. Pliki RSS generowane przez system można linkować bezpośrednio w sekcji <item> podłączając się po struktury zdefiniowane w serwisie

Np. aby podłączy się pod kanał comedy dostępny tu: http://www.metafeeds.com/channel/comedy

Wpisujemy link do pliku rss: http://www.metafeeds.com/channel/comedy/rss

Na tej zasadzie przygotowano pierwszą część serwisów internetowych dla MBoxów dla rynku niemieckiego, gdzie sekcja TV podłączona została pod główne menu zostało podłączone pod kanał http://www.metafeeds.com/channel/fav_egreat

Polecamy też wątek na niemieckim forum.

(choć Niemcy wykorzystali metodę ingerencji w filesystem oprogramowania i poprawki wypuścili jako testowe oprogramowanie do MBoxa TR11 – pracę rozpoczęli jednak przed opublikowaniem metody przełączania lokalizacji serwisów na nośnik użytkownika).

Zestaw niemiecki do instalacji na nośniku USB/HDD można pobrać tu

W polskich serwisach podłączone zostały dla przykładu zagranicznie zestawy serwisów dla Czech, Włoch i Niemiec (dla tych krajów znalazło się akurat najwięcej wartościowych i w miarę działających materiałów).

Czesi zostali podłączeni wprost przez <link>http://www.metafeeds.com/channel/international---czech/rss</link>

Szczegóły w pliku tv_others.rss

Prawda o metafeeds jest jednak taka, ze wiele materiałów i odnośników jest nieaktualnych, wiele jest w formatach MMS, nie czytanych przez odtwarzacz. Wiele rzeczy się powtarza. Jest tam bałagan. Serwis jest dobrym źródłem wiedzy i treści, ale należy korzystać z niego po weryfikacji. Część plików RSS pobieranych z sieci ma także mocno przedefiniowaną część sekcji <mediaDisplay> co powoduje że sposób prezentacji na ekranie może niepoprawny lub dziwny (część plików użytkownicy przygotowywali dla innych systemów).

Wiele treści obecnych w polskich serwisach bazuje na plikach pobieranych z YouTube. YouTube oferuje łatwy w obsłudze i darmowy interfejs API w RSS, opisany tu:

http://code.google.com/intl/pl/apis/youtube/2.0/reference.html

http://code.google.com/intl/pl/apis/youtube/2.0/developers_guide_protocol.html

Bazując na tym API zbudowany jest interfejs dostępu do samego serwisu (plik youtube.rss) oraz szereg odwołań do kont różnych użytkowników (np. cat_trailer.rss)

Możliwości jest to na pewno dużo więcej niż wykorzystano w przykładach w opublikowanym serwisie.

Rzecz która nam nie zadziałała, to odwołania do polskiej części YouTube w zapytaniach ogólnych z pliku youtube.rss.

Odnośniki typu

http://gdata.youtube.com/feeds/api/standardfeeds/PL/top_rated

http://gdata.youtube.com/feeds/api/standardfeeds/PL/most_viewed

http://gdata.youtube.com/feeds/api/standardfeeds/PL/most_recent

dają dobre wyniki w przeglądarce WWW, ale na odtwarzaczu już nie (YouTube z pewnością sprawdza jaki klient pyta i podaje odpowiednio zmodyfikowane pliki RSS, wyniki nawet bez PL są różne dla przeglądarki i odtwarzacza).

Jedynie parametr PL (jako lr=pl) dla zapytania o wyszukiwanie oraz w selekcjach wg katgorii (plik youtube_cat.rss) daje poprawne wyniki z priorytetem dla języka polskiego.

Serwis YouTube w niektórych odtwarzaczach jest realizowany za pomocą bardziej rozbudowanych skryptów RSS z elementami JavaScript, które bardziej kontrolują budowanie zapytań i komunikację przez API. Skrypty te powstały nieco wcześniej, kiedy YouTube nie dawał pewnego API dla RSS i korzystają z nieco innego API (starszego?) – tam jednak kontrola polskich zasobów dla każdej kategorii występuje (może nawet dostęp standardowo oferowany przez Hyundai był właśnie tak zrobiony!)

Inne informacje:

  1. Katalogi IMS_Script oraz IMS_Image są linkowane do file systemu /usr/local/etc/scripts oraz /usr/local/etc/image, dlatego w kodzie znajdują się odwołania do ścieżek ../script i ../image, foldery IMS_ nie występują
  2. Linki do plików audio/wideo lepiej definiować przez strukturę <enclosure> a nie <link>. Przykłady znajdują się w pliku music_video_list.rss
  3. Nie są obsługiwane strumienie MMS, ani audio ani wideo – próby będą nadaremne, choć nadzieja (nikła) na uzupełnienie tej sprawy w przyszłych wersjach firmware’ach jest.
  4. Dla plików i strumieni muzycznych działają formaty mp3 (MpegAudio), AAC i AAC+. Z OGG są problemy, niektóre strumienie działają. Formaty Microsofta nie ida (MMS, playlisty ASX). Nie działa też RTSP.
  5. Zmiany dokonywanie w plikach RSS w katalogu z którego korzysta odtwarzacz są widoczne na ekranie po przeładowaniu pliku (czyli wystarczy wyjść na poziom z którego plik jest wywoływany i otworzyć go ponownie). Nie ma np. problemu aby pliki modyfikować zdalnie przez sambę na komputerze i wyniki obserwować natychmiast na TV
  6. Zestaw systemowych serwisów Hyundaia do instalacji na HDD/USB można pobrać tu
  7. Polskie znaki w plikach RSS kodowane powinny być w UTF8
  8. Niektóre tekstowe kanały RSS nie chcą działać na odtwarzaczu – nie wiemy dokładnie czemu, np. nie dało się podłączyć pod kanały Onetu z linków typu http://wiadomosci.onet.pl/kraj/rss.xml
  9. Gra MasterMind powstała przez przepisanie skryptów PHP do RSS/JavaScript, na podstawie otwartego projektu przygotowanego dla Xtreamra. Dla Xtreamera adoptowano nieco więcej prostych gier (włoski projekt kolegi Stefano C. – dziękujemy)
  10. W serwisie pogodowym jest możliwość dodania lokacji do ulubionych – później dane miasto jest dostępne od razu na liście po wejściu w serwis. Analogiczny mechanizm przydałby się np. dla radia internetowego

Ciekawe linki do zgłębienia, zbadania, wykorzystania itd:

  1. Google Feedburner: http://feeds.feedburner.com (w projekcie występują linki do publikacji trzymanych przez ten system, np. http://feeds.feedburner.com/syrjus?format=xml)
  2. http://stagevu.com/videos tu można wyłuskać bezpośrednie linki do plików AVI z filmami, ale zdaje się że adresy URL są co jakiś czas zmieniane.
  3. http://www.cafenews.pl/ - tu właściwie tylko kanały tekstowe są do wykorzystania
  4. http://nadaje.com/rozglosnie_radiowe.html - trochę polskich stacji radiowych
  5. http://forum.ubuntu.pl/showthread.php?t=103131 – inny zestaw stacji radiowych, częściowo już zaaplikowany do odtwarzacza

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W moim mboxiem dorzuciłem menu z zapytaniami do youtube, konkretnie do bajek dla mojej córki (męczyło mnie ciągłe klepanie tytułów pilotem). Niestety nie ma możliwości otrzymania wyników posortowanych wg tytułu (chyba że się stworzy playlisty). Napisałem więc skrypt sortujący i generujący wyniki w postaci kanału RSS. W przeglądarce było OK na Hyundai'u nie działało. Myślałem na początku, tak jak tu piszecie, że yt specjalnie modyfikuje RSS dla odtwarzacza. Aż trafiłem w katalogu /tmp/cached/ na plik jaki otrzymuje odtwarzacz z yt. Jego zawartość wkleiłem do drugiego skryptu do komendy echo. Zapytania do yt czy skryptu dają identyczne wyniki, ale w odtwarzaczu nie działa. Jedyna widoczna różnica, to że we wspomnianym katalogu z zapytania do yt powstaje plik o nazwie w postaci "http:__gdata.youtube...", a ze skryptu "temp.rss". Skrypt umieszczałem na serwerze friko.pl oraz na własnym apachu. Nic to nie zmienia. Może ma ktoś pomysł jak to rozwiązać. Ja już się poddałem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Próbowałem, ale parametr "title" dostępny jest tylko dla playlist feed. Musiałbym utworzyć konto na yt. Dodatkowo dochodzi ograniczenie do 200 tytułów dla playlisty.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam

Myślę, że kanały RSS publikowane powinny być w formacie RSS 2.0, a nie jak ten pod adresem http://wiadomosci.onet.pl/kraj/rss.xml (to jest Atom).

Prawdopodobnie obecny firmware nie obsługuje innego formatu niż RSS 2.0 (nawet RSS 0.9x oraz RDF - http://pl.wikipedia.org/wiki/RSS). Z resztą całe skrypty IMS opierają się o RSS 2.0.

Poza tym spostrzeżeniem mam pytanie:

Od czego zależy do to że niektóre podcasty do odsłuchania (np. powiązane z plikami mp3) wymagają najpierw uruchomienia opcji Download, a dopiero później można je odsłuchiwać, a przy innych (np. podcasty RMF POPlista) odsłuchiwanie startuje od razu?

Dzięki

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Musisz dać konkretny przykład, może zapis kawałka skryptu RSS - bez tego trudno się odnieść do "opcji Download" - nie wiem gdzie to występuje. W opublikowanej wersji IMS PL nie ma takich przypadków.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprawa się wyjaśniła.

Nowy podcast dodałem wprost do głównego pliku menu.rss, natomiast po stworzeniu własnej pozycji menu w postaci pliku np. menu_Moje.rss i dodaniu do niego wybranego podcastu to działa to dobrze. Plik mp3 z nim związany odtwarzany jest od razu.

Dziękuję.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Cz istnieje możliwość wyświetlania oryginalnego info o pliku wideo, który odtworzonym jest przez RSS niż sam czas wyświetlony małymi literami i na biało. Z Xtremera znalazłem coś takiego ,tylko nie wiem czy zadziała:

Description: Set full control (full info, skip, zoom, subtitle) for online streaming

Input Parameters:

SetBranch(index, 0/1); // 1= set, 0= reset; index may be 0~9

SwitchViewer(value); // [values: 0 = reset, 1 = HTTP, 2 = MMS, 4 = RTSP, 7 = All]

Output Parameters:

None

Sample Code:

<script>

SwitchViewer(0); /* reset*/

SwitchViewer(7); /* applied for all*/

</script>

[N.B: Once set, it will be applied for all views, so need to reset (using value 0) if you want to use for particular page]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Niestety próbowałem wykorzystać te ustawienia i nie zadziałały. Więc pozostaje mi tylko czekać na rozwiązanie sprawy przez Hyundai-a, bo raczej tak jak to było w Xtreme-rze to sprawa firmware.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jakby ktoś był ciekawy dostałem oficjalne potwierdzenie z Human Media, że sprawa tych funkcjonalności leży po stronie firmware a nie skryptów RSS.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić obrazków. Dodaj lub załącz obrazki z adresu URL.


  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...