Jul 20

Ncmpcpp music feed scraper für 106fm

Veröffentlicht von onny

Foto von “106fm Jerusalem


106fm ist ein großartiger Campus-Radiosender aus Israel, um genauer zu sein aus der Stadt Rishon LeZion und wird von der Universität “The College of Management Academic Studies” zu Lehrzwecken für Studenten betrieben. Die Genres des Senders sind sehr vielseitig, “Electronic music, Progressive Rock, Alternative, Black, Latin …“. Größtenteils Alternative Music, je nach Sendung immer zu einem gewissen Thema. Über RSS-Feeds werden die Sendungen komplett und ungeschnitten als MP3-Datei bereitsgestellt (meistens mit ~ 1 Stunde Laufzeit. Unvorstellbar für einen deutschen Radiosender soetwas anzubieten …).

Für meinen terminal-based music client ncmpcpp hab Ich nun einen Scraper gebaut in Python3, der alle möglichen Feeds scraped (das feedparser Modul benutzend) und aus Titel, Showname und URL zur Mediadatei eine Playlist erstellt, deren obersten Einträge immer auch die neusten sind.

Die Playlist wird im Programm dann so dargestellt:

Der Code dazu sieht so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python3

import feedparser
import operator

mediaitems = []

def scrapefeed(item):
    d = feedparser.parse("http://www.106fm.co.il/programs/"+str(item)+"/tracks/feed.xml")
    if (d.feed.has_key('title')):
        for entry in range(0,len(d.entries)):
            if d.entries[entry].has_key('enclosures'):
                title = d.entries[entry].title
                showname = d.feed.title
                published = d.entries[entry].published
                url = d.entries[entry].enclosures[0]['href']
                mediaitems.append({"show": showname, "title": title, "published": published, "url": url})

for index in range(0,100):
    scrapefeed(index)

f = open('/home/onny/audio/playlists/106fm.m3u', 'w', encoding="utf-8")
for foo in sorted(mediaitems, key=operator.itemgetter("published"), reverse=True):
    f.write(foo['url']+" # "+foo['show']+" - "+foo['title']+"\n")
f.close()

Für die Nutzung sollte man natürlich je nach Bedarf den Ausgabepfad für die Playlist-Datei anpassen.

Leider unterstützt Ncmpcpp (oder vllt. auch mpd?) keine Tags im Playlist-Format, deshalb schreibt das Script “Meta-Informationen” hinter die URL als Kommentar. Prinzipiell würde Ich mir gerne auch noch einen Scraper für Podcast-Feeds schreiben, der solch eine chronologisch sortierten Playlist-Datei exportiert (gPodder ist einfach ein wenig unhandlich und langsam).

May 28

Discographie von “Dj SoJaSprosse” ;)

Veröffentlicht von onny

Jeder fängt mal klein an … z.B. indem man mit FruityLoops unter Windows einfache Beats zusammenbastelt und noch ein paar crazy Samples draufmoduliert xD Aber das, was ich da auf meinem alten Webspace gefunden habe übertrifft echt alles, OMG! Mit diesen Beitrag wird die Glaubwürdigkeit des Blogs noch einmal auf ein Minimum gebracht ;)
Da gäbe es zwei kleine “Alben”, die ich aus der Erinnerung heraus eigentlich sehr lustig fand und unbedingt als historisches Zeitdokument hier veröffentlichen wollte. Jetzt wo ich die Dateien gut sortiert wieder gefunden habe, erinnert man sich zwangsläufig wieder an so tolle Aktionen wie http://www.steigausundwandere.de.vu. Zu meiner Verteidigung kann ich sagen, dass ich nicht allein verantwortlich für diese “Meisterwerke” bin. Eine Art Copyright gibts hierfür nicht :)

Dj SoJaSprosse – Peruski (2006)

01. Dj SoJaSprosse – Chillout (00:00:40)

02. Dj SoJaSprosse – The Fight (00:01:56)

Download full album: Dj SoJaSprosse – Peruski.tar.gz

Dj SoJaSprosse – Steig aus und wandere (2006)

01. Dj SoJaSprosse – bgmusic (00:00:06)

02. Dj SoJaSprosse – bgmusic2 (00:00:13)

03. Dj SoJaSprosse – bgmusic3 (00:00:13)

04. Dj SoJaSprosse – bgmusic4 (00:00:27)

05. Dj SoJaSprosse – bgmusic5 (00:00:21)

Download full album: Dj SoJaSprosse – Steig aus und wandere.tar.gz

Lokalisiert von Hashi. Modified by project-insanity.