e-radio.gr playlist generator
by Lappas Dionysis
Στο http://e-radio.gr βρίσκονται καταχωρημένα τα περισσότερα ελληνικά ραδιόφωνα (διαδικτυακά και μη). Όταν κάποιος θέλει να ακούσει ένα ραδιόφωνο, συνήθως ανοίγει τον browser, πλοηγείται στο συγκεκριμένο site, επιλέγει το σταθμό της αρεσκείας του από τις σχετικές λίστες και ακολούθως ο browser φορτώνει κάποιο πρόσθετο (plugin) προκειμένου να ξεκινήσει η αναπαραγωγή του σταθμού (το streaming όπως λέγεται καθώς είναι ένα ρεύμα δεδομένων που μεταδίδεται, μεταφέρεται κι αναπαράγεται σε πραγματικό χρόνο). Ωστόσο, η παραπάνω διαδικασία έχει τα εξής μειονεκτήματα για το χρήστη:
Το EradioParser δίνει τη δυνατότητα σε κάθε χρήστη να δημιουργεί playlists από το http://e-radio.gr. Το πρόγραμμα φορτώνει το μενού με τις κατηγοριοποιήσεις των σταθμών, όπως καταχωρούνται στο e-radio.gr (δηλαδή έχει το ίδιο μενού με το e-radio.gr) και με βάση την επιλογή του χρήστη δημιουργεί ένα τελικό playlist. Κατ' αυτόν τον τρόπο, αποφεύγονται όλα τα μειονεκτήματα που προαναφέρθηκαν και αρκεί μόνο ο χρήστης να αναπαράγει το playlist με τον vlc player και να επιλέξει το σταθμό που επιθυμεί!
Τα playlists που παράγει είναι της μορφής .xspf. Το συγκεκριμένο format είναι portable, δηλαδή μπορείτε να αναπαράγετε το ίδιο αρχείο σε όλα τα λειτουργικά συστήματα χωρίς κανένα πρόβλημα.
Το πρόγραμμα είναι γραμμμένο σε Java κι επομένως τρέχει σε όλα τα λειτουργικά συστήματα (Windows, Mac, GNU/Linux e.t.c.).
Είναι free software, υπάγεται στην άδεια GPL v3.0, γεγονός που σημαίνει ότι ο καθένας μπορεί να το χρησιμοποιήσει και να το αναδιανείμει ελεύθερα, ενώ μπορεί να δει και τον πηγαίο κώδικα.
Είναι σημαντικό να τονιστεί ότι το πρόγραμμα γράφτηκε με στόχο να μπορεί να το χρησιμοποιεί ο κάθε χρήστης, ακόμα και ο πιο άπειρος και δεν απαιτεί καμία ιδιαίτερη γνώση.
Το μενού του προγράμματος φαίνεται παρακάτω:
Get a playlist for all the stations at <e-radio.gr>.
Δημιουργεί ένα playlist με όλους του σταθμούς που υπάρχουν καταχωρημένοι στο e-radio.gr.
View the available station Categories and get a playlist.
Προβάλλει το μενού με τις κατηγορίες των σταθμών ανά μουσικό είδος.
Ο χρήστης επιλέγει μια κατηγορία και το πρόγραμμα δημιουργεί ένα playlist.
View the available station Locations and get a playlist.
Προβάλλει το μενού με τις κατηγορίες των σταθμών ανά γεωγραφική περιοχή.
Ο χρήστης επιλέγει μια κατηγορία και το πρόγραμμα δημιουργεί ένα playlist.
View the station Ratings (Top) and get a playlist.
Προβάλλει το μενού με τις κατηγορίες των σταθμών με βάση τις αξιολογήσεις (Ratings).
Ο χρήστης επιλέγει μια κατηγορία και το πρόγραμμα δημιουργεί ένα playlist. Για τις επιλογές 2, 3, 5, 6, 8, 9 πρώτα προβάλλεται το σχετικό υπο-μενού και κατόπιν ο χρήστης καλείται να κάνει την επιλογή του.
cd desktop [και πατάμε Enter]
java -jar eradioParser-1.1.jar [και πατάμε Enter]
cd Desktop [και πατάμε Enter]
java -jar eradioParser-1.1.jar [και πατάμε Enter]
cd Desktop [και πατάμε Enter]
java -jar eradioParser-1.1.jar [και πατάμε Enter]
Το πρόγραμμα παράγει μέχρι και 3 διαφορετικά αρχεία. Τα αρχεία είναι τα εξής:
Εκτός, από το playlist.xspf αρχείο, τα άλλα δυο είναι ενημερωτικού χαραχτήρα, για να μπορεί ο χρήστης να έχει μια εικόνα των μη έγκυρων σταθμών
Φυσικά! Έχουν δημιουργηθεί τα δυνατά playlists που μπορεί να πάρει κανείς χρησιμοποιώντας τις επιλογές 1,2 και 3 του μενού του προγράμματος. Η 4η επιλογή του μενού (Ratings) δεν έχει χρησιμοποιηθεί καθότι τα playlists δεν έχουν νόημα αν δεν είναι επίκαιρα. Ακόμα περισσότερα playlist μπορεί να δημιουργήσει κανείς χρησιμοποιώντας command line arguments (δείτε παρακάτω)! Τα παρακάτω playlists έχουν δημιουργηθεί στις 30 Απριλίου 2012.
Playlist | Elapsed time (ms) | Parsed urls | Valid urls | Unparsed urls |
---|---|---|---|---|
e-radio.gr | 2149994 | 752 | 659/752 | 7 |
By category | ||||
Greek Mainstream | 379289 | 125 | 112/125 | 1 |
Greek Laiko | 203034 | 48 | 41/48 | 1 |
Electric & Ballads | 212506 | 50 | 47/50 | 0 |
Various | 191505 | 48 | 40/48 | 0 |
Traditional | 40746 | 18 | 17/18 | 0 |
Adult Hits & Dance | 471730 | 158 | 128/158 | 2 |
Rock | 93749 | 41 | 38/41 | 0 |
Sophisticated | 215199 | 71 | 62/71 | 0 |
News & Music | 401433 | 89 | 79/89 | 0 |
Sport News | 82732 | 14 | 10/14 | 0 |
Religious | 39204 | 16 | 15/16 | 0 |
By location | ||||
Athens | 138874 | 63 | 59/63 | 0 |
Thessaloniki | 87749 | 44 | 43/44 | 0 |
Internet Radios | 87749 | 242 | 197/242 | 3 |
Aegean Islands | 145581 | 46 | 39/46 | 1 |
Crete | 222933 | 68 | 57/68 | 0 |
Cyprus | 78760 | 30 | 29/30 | 1 |
Epirus | 40236 | 18 | 17/18 | 0 |
Ionian Islands | 39597 | 21 | 20/21 | 0 |
Macedonia | 172642 | 63 | 57/63 | 1 |
Peloponnesus | 176632 | 60 | 55/60 | 0 |
Sterea Ellada | 61712 | 33 | 31/33 | 1 |
Thessalia | 125847 | 34 | 30/34 | 0 |
Thrace | 61399 | 30 | 26/30 | 0 |
Elapsed time: Χρόνος εκτέλεσης του eradioParser (στο PC μου) σε milli second.
Parsed: Links που βρέθηκαν για επεξεργασία.
Valid: Links που αντιστοιχούν σε έγκυρες διευθύνσεις.
Unparsed: Links που απορρίφθηκαν πριν το στάδιο της επεξεργασίας (probably bad).
Το eradioParser υποστηρίζει ορίσματα γραμμής εντολών. Συγκεκριμένα υποστηρίζει τα εξής ορίσματα:
Τα urls πρέπει να είναι κάποια κατηγορίας μουσικού είδους (π.χ. Rock), ή τοποθεσίας (π.χ. Αθήνα) ή αξιολόγησης (π.χ. Daily Top50), ή συνδυασμός αυτών. Ο χρήστης μπορεί να βρει εύκολα τα urls αν επισκεφθεί το http://e-radio.gr και κατόπον πηγαίνοντας στο μενού κάνει δεξί κλικ και copy link address στην επιλογή που τον ενδιαφέρει, όπως φαίνεται παρακάτω:
Επομένως, είτε μπορεί να αποθηκεύσει αυτά τα urls σε ένα αρχείο (ένα ανά σειρά) και να δώσει το όνομα του αρχείου κατά την εκτέλση του προγράμματος ώστε να τα επεξεργαστεί, είτε μπορεί να εισάγει ο ίδιος τα urls που επιθυμεί (διαχωρισμένα με κενό).
Αν θέλουμε λοιπόν να εισάγουμε command line arguments, το πρόγραμμα εκτελείται ως εξής:
java -jar eradioParser-1.1.jar [filePath]
π.χ.
java -jar eradioParser-1.1.jar C:\Dio\myFile.txt [σε Windwos]
java -jar eradioParser-1.1.jar /Dio/myFile.txt [σε Mac και GNU/Linux]
java -jar eradioParser-1.1.jar [url] [url] [url]...[url]
π.χ.
java -jar eradioParser-1.1.jar http://www.e-radio.gr/locations/athens.asp http://www.e-radio.gr/categories/greekhits.asp http://www.e-radio.gr/ratings/top.asp?iv=d
Κατ'αυτόν τον τρόπο, μπορούμε να δημιουργήσουμε συνδυασμένα playlists (είναι πάρα πολλοί οι δυνατοί συνδυασμοί) με βάση τις προτιμήσεις μας.
$java -jar eradioParser-1.1.jar
$java -jar eradioParser-1.1.jar [filePath]
$java -jar eradioParser-1.1.jar [url] [url] [url]...[url]
Τα μηνύματα που τυπώνονται κατά την εκτέλεση είναι ενδεικτικά/ενημερωτικά της πορείας εκτέλεσης του προγράμματος και δεν πρέπει να απασχολούν το χρήστη. Το πρόγραμμα σε καμία περίπτωση δεν κολλάει ούτε μπορεί να τερματίσει απρόσμενα λόγω σφάλματος! Μετά το πέρας της εκτέλεσης τυπώνεται μια σύνοψη, όπως φαίνεται παρακάτω:
Ο πηγαίος κώδικας βρίσκεται σε public repository στο Github.com και μπορείτε να τον δείτε εδώ, μαζί με όλες τις βιβλιοθήκες και τα σχετικά αρχεία ανάπτυξης του προγράμματος.
Τα JavaDocs μπορεί κανείς να τα διαβάσει από εδώ