poniedziałek, 29 czerwca 2015

Trikatuka - aplikacja do migracji playlist Spotify

Ten post dotyczy starej wersji aplikacji. Nowa dostępna jest tu:
http://aknowakowski.blogspot.com/p/trikatuka-spotify-migration-tool.html


Przez ostatnie kilka dni pisałem proste narzędzie do migracji playlist w Spotify z jednego konta na drugie. Zrobiłem działającą wersję, nazwałem ją Trikatuka, wrzuciłem na githuba i postanowiłem się podzielić :)

Trikatuka - screenshot


Początkowo miał to być prosty skrypt który zrobiłby wszystko od początku do końca, ale z powodu ograniczeń API Spotify zwykłym konsolowym skryptem nie jest. Tzn może nie tyle z powodu ograniczeń co po prostu ze sposobu działania api. Ponieważ api spotify potrzebuje do autentykacji zwrotnego urla, to i tak musiałem postawić jakiś serwer, a jak już postawiłem to dorobiłem interfejs i ostatecznie wyszła z tego mini web aplikacja.

Aplikację napisałem w Pythonie, z którym nie mam zbyt wiele doświadczenia. Odczucia jak zwykle po pracy z Pythonem mam mieszane. Niby wszystko fajnie ale przez to, że nie do końca znam różne triki i właściwości, cały czas towarzyszy mi poczucie, że można lepiej. Ciągle nie wiem czy lubię Pythona. Mam wrażenie, że jest ekstra do szybkich małych skryptów, ale do większych rzeczy już tak przyjazny nie jest. Dobrze, że jest tak popularny, więc w razie problemów, szybko można znaleźć rozwiązanie.

Do obsługi requestów użyłem lekkiej biblioteki "web.py". Dość łatwa w obsłudze, wspiera template'y i ma różne przydatne funkcjonalności, ale niestety ma średnio czytelną dokumentację. Dla takiej małej aplikacji chyba nadaje się lepiej niż np. Django, którego co prawda nigdy nie używałem, ale takie mam przeczucie :P Świadomie nie użyłem Angulara (a mam z nim już trochę doświadczenia), żeby spróbować czegoś nowego. A w zasadzie starego, bo nie dołączyłem nawet jQuery, więc w kodzie jest czysty JavaScript :) Na szczęście JavaScriptu jest bardzo mało, więc nie było to jakoś mocno uciążliwe. Żeby to wszystko jako tako wyglądało użyłem UIkita - bo lubię, go bardziej niż Bootstrapa.
Myślę jednak, że następnym razem jak będę pisał coś podobnego to chyba zdecyduję się na pisanie w Groovy'm, do części serwerowej użyje dość młodego projektu Ratpack no i jednak nie zrezygnuję z Angulara ;) Ale co będzie następne i kiedy to będzie, nie mam pojęcia.

Co do samej aplikacji, to generalnie działa na tyle, że można używać jej do tego do czego została stworzona. Na moich playlistach działała tak jakbym tego oczekiwał. Współtworzone playlisty zaczyna obserwować, a publiczne i prywatne kopiuje. Także jeśli komuś jest potrzebne narzędzia do przenoszenia playlist w spotify między dwoma różnymi kontami, to myślę, że ten programik będzie przydatny i pomoże zaoszczędzić trochę czasu. Gdyby coś nie działało to proszę o zgłoszenie na githubie lub tweeta. Jeśli ktoś ma jakieś pomysły to też czekam.

Aplikacja i instrukcja użycia jest tutaj: http://aknowakowski.blogspot.com/p/trikatuka.html

Pozdrawiam