Last updated:
0 purchases
somasongs 1.0.3
Soma Songs
Save songs from https://somafm.com as JSON.
How does it work?
Most somafm radiostations publish their tracklist. F.e. the police scanner-channel doesn't, while def con radio does. But this overview only includes the last hour(s) and is not easily machine-readable.
So why not archive this for all the channels, all the time, clean up the data a little bit and make it more useable?
results are stored in a tinydb, well, two, actually, these are just JSON files
the timestamp also includes a date and has a timezone annotation. Btw., if you want to get into the details: https://somafm.com is based in San Francisco, the IANA time zone identifier is America/Los_Angeles. Currently they use PDT (Pacific Daylight Time), which is UTC-7. PST (Pacific Standard Time) would be UTC-8.
the somafm amazon links are not relative anymore and are also included to support https://somafm.com
How do you use/run this?
Well, you don't have to :) because I already created inktrap/somafm-json which contains the output.
But you can, by:
pipx install somafm-songs
If you call somafm-songs you'll see that ~/somafm-json/meta.json contains the channel meta data and ~/somafm-json/music.json contains tracks/songs.
If you want to keep your results in git and push them to a remote you have to turn that directory into a git repository with a remote and create a cron-job which does (and is allowed to do) the git commit/push spiel. I haven't tested this yet, but a cronjob like this could work:
30 * * * * /path/to/soma-songs -q && cd ~/somafm-json && git commit -am $(date) && git push
Thanks to somafm and to all the amazing DJ(ane)s :)
What can you do with this?
You get a nice archive of great radio channels, what else do you want? Well, you could:
train your own music recommendation tool for each channel, just for fun https://github.com/mattmurray/music_recommender
match albums/artists with musicbrainz-identifiers to find more info
look for overlap/similarity of channels
create your own rankings (per channel/artist/genre/year/…)
you could check for each channel how many artists/albums/songs are in your beets library (maybe adjust for popularity?!)
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.