Moje HTPC i nie tylko

Takie tam…

XBMC – Teksty piosenek

with 3 comments

W XBMC jest ciekawy plugin CU Lyrics pozwalający na automatyczne ściąganie tesktów odtwarzanych piosenek.

Niestety, korzysta on z witryn na których trudno znaleźć piosenki po polsku. Na szczęście stosunkowo łatwo można utworzyć nowy Scraper czyli moduł pobierający treść z jakiejś strony www. Ponieważ trafiłem na serwis tekstowo.pl na którym jest na prawdę dużo tekstów piosenek polskich i zagranicznych a wiele z nich ma także tłumaczenia  – postanowiłem podjąć próbę napisania scrapera.

Sposób instalacji

Jeżeli ktoś zna lepszy sposób to proszę o info. Mój sposób:

  1. Zakładam, że CU Lyrics jest już zainstalowane, jeśli nie to trzeba zainstalować i włączyć w ustawienia skórki przycisk do wyświetlania tekstów
  2. W katalogu domowym w .xbmc/addons/script.cu.lyrics/resources/lib/scrapers utworzyć katalog „tekstowo” i wgrać tam 2 pliki: __init__.py oraz lyricsScraper.py  (github)
  3. W katalogu .xbmc/addons/script.cu.lyrics/resources/language utworzyć katalog „Polish” i wgrać tam plik strings.xml
  4. Teraz wystarczy wyłączyć i włączyć wtyczkę CU Lyrics i wejść w ustawienia (powinny być po polsku) i jako Scraper wybrać „tekstowo.pl” i już można się cieszyć tekstami piosenek

Jak to działa

  • Dla aktualnie odtwarzanej piosenki jest pobierany wykonawca i tytuł.
  • Nazwy są zamieniane na małe litery, spacje i przecinki są zamieniane na znaki podkreślenia.
  • Na tej podstawie wyliczany jest url do strony z tekstem piosenki.
  • Następnie jest próba odczytu takiej strony – jeżeli trafiliśmy – jest strona z tekstem.
  • Jeżeli jest 404, to następuje wyszukanie – i pobierana jest strona będąca pierwszym wynik wyszukiwania. Czasem daje to niespodziewane efekty – tekst totalnie nie pasuje do słuchanego utwory, dlatego na końcu wyświetlanego tekstu dodałem informacje o jego faktycznym wykonawcy i tytule. Na szczęście zdarza się to dość rzadko.
  • W htmlu strony z tekstem szukane są odpowiednie fragmenty: tekst piosenki, tłumaczenie, wykonawca, tytuł. Są odpowiednio sklejane oraz przeformatowane z html do normalnego tekstu.
  • Tutaj kończy się rola scrapera – resztę obsługuje CU Lyrics

Dodam, że to mój pierwszy (prze)robiony skrypt w Pythonie, więc raczej nie należy się na nim wzorować.

Written by Admin

15 Styczeń 2012 @ 21:02

Napisane w xbmc

Odpowiedzi: 3

Subscribe to comments with RSS.

  1. Strona z __init__.py nie dziala :(
    MOglbys mi podeslac emailem? satman@gazeta.pl

    satman

    6 Marzec 2012 at 15:23

    • Poprawiłem link (tak naprawdę ten plik jest pusty – zawiera tylko komentarz).
      Dodatkowo dałem link do githuba

      Admin

      6 Marzec 2012 at 15:59

  2. Dziękuję bardzo. działa wyśmienicie!

    esesen

    24 Kwiecień 2012 at 21:12


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: