Open UdoKifferbrehl opened 8 years ago
Update – see comments below :arrow_down: for screenshots!
@UdoKifferbrehl thanks for you interest. I had this running quite nicely, but probably exaggerated a bit as my Raspberry one day stopped working at whole. Probably the SD card. Since I was busy I didn't re-activate the recorder yet, but I want to do so very soon as I'm missing my radio broadcasts ... altough the friendsoft/radiorecorder is just a prototype quickly hacked together, it does work in production.
Concerning screenshots: I fully agree there should be some, along with a README.md covering all steps to set this up. I will try to do so within the next days, and I'm also motivated in improving both the recorder and the friendsoft/radiobroadcasts configuration scheme.
I saw you found further similar projects on Github, which is quite nice. I'll try to get in touch with their maintainers for an exchange, maybe setup a a common IRC channel on Freenode (or Slack, if everything else fails ;) for people who love radio and want to record streams.
What are you personally looking for? friendsoft/radiorecorder has no Web GUI (yet?), it's plain command line driven, based on Crons, and records and tags radio broadcasts by a scheme which allows also rhythms like "every second Tuesday" or even "each first and third Tuesday in a month".
If you have any ideas or proposals please let me know.
Thank you very much for your answer. A web GUI would be nice for me but it is not a must-have. I plan to record radio on a small VPS and later on a RasPi 3 maybe. I appreciate your effort a lot. Thank you very much :-)
I re-enabled my Raspberry yesterday (it obviously suffered from too many writes on the SD, now with an USB drive mounted there seems to be no issue anymore) and am currently going through friendsoft/radiobroadcasts, updating schedules and stream URLs. The idea behind that separate repository for stream addresses and broadcast schedules is to allow maintaining it commonly, no matter which client everyone uses for actually doing the recordings.
I also took a couple of screenshots already, but found the setup too difficult and "hacky" at the moment for being worth shared at this time. For example, to get a list of scheduled broadcasts for the current week, one has to call record.php
exactly at the full hour, or temporarily comment out a condition directly within the code. Obviously it makes more sense to fix that rather than writing docs for it.
I'm thus adding a Console functionality in a next step for better usability, and will extract the basic configuration out into a separate file before writing the README.md
and finally posting some screenshots .)
Will keep you up to date in this ticket, expect to hear from me next week.
What are you planning to record? Full broadcasts? Single tracks?
I am planning to record full broadcasts (I suppose an average of about two hours). If you like you can add the stations TechnoBase with the stream URL http://listen.technobase.fm/ and Gabber (http://gabber.fm/players/gabberfm.m3u). Thank you very much for keeping me updated :-)
@UdoKifferbrehl
That is quite nice actually, as while interested in electronic music in general, there's not much techno and even no gabber covered in friendsoft/radiobroadcasts yet.
So both technobase.fm stream and gabber.fm stream technically do work, but do you have two or three broadcasts for testing, too?
http://www.technobase.fm/showplan/ http://gabber.fm/live-schedule/
For adding stations and broadcasts: the radiorecorder
loads both stations.dist and broadcasts.dist as a default, thus stations and broadcasts can be added there for everyone.
The other option is to add a local stations
and a local broadcasts
file in the same format, but with your own entries, so you can instantly add new stations and broadcasts by just editing those files, and even overwrite the official entries (e. g. for providing a subscriber's stream URL rather than a free one). I will happily provide more detailed info and help on this, but we can start with the first option (friendsoft/radiobroadcasts) if you like, just let me know a few broadcasts you're interested in.
You could add those as well:
N-Joy http://www.ndr.de/resources/metadaten/audio/m3u/n-joy.m3u NDR 1 Niedersachsen http://www.ndr.de/resources/metadaten/audio/m3u/ndr1niedersachsen.m3u 89.0 RTL http://stream.89.0rtl.de/live/mp3-256/direktlinkHP/ BBC 1 http://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/uk/sbr_high/ak/bbc_radio_one.m3u8 AnimeNfo http://momori.animenfo.com:8000/listen.pls
Thanks!
@UdoKifferbrehl , I promised some screenshots.
This is my screen playing the records. On the left: cmus. All records of one station are stored in one folder currently, but that's configurable – tokens like %STATION%
, %BROADCASTNAME%
, %YEAR%
, %MONTH%
and %DAY%
can be used to define the general path. The records obviously can be played with any other music player, too.
Upper right: a tree
over latest recordings just on file system.
Mid right: a part of the hourly schedule report for the current week. I'm using this when watching out for recent records.
Lower right: I'm using the mouse wheel over this alsamixer
instance to quickly adapt the volume. Evidently not closely related to the radiorecorder itself.
Tagging automatically done by friendsoft/radiorecorder: this is how it looks like when recorded broadcasts got scrobbled with last.fm: the station is used as artist, broadcast name as album, broadcast name with date as title.
The artist page thus serves as station page:
Always the (same) broadcast name for each time it's recorded is the album ...
... and the individual recordings are the title, which allows nice sorting and charting.
Evidently, you can use any scrobbling service or just local music organization software or players for this, as the tagged data are part of the record files themselves.
Cron
– just one cron needs to be set once the recorder is installed. Every minute it calls the radiorecorder to check if a recording needs to be triggered and if a schedule report is to be sent.
Recording (processes viewed in htop
)
– there's no limitation (apart from your system) on how many records are started at a time.
All records can have different durations, each will be processed independently without having to wait for the longer broadcasts to finish first.
Get latest broadcast schedules
Within the radiorecorder
root directory, just run
composer update friendsoft/radiobroadcasts
to get the latest broadcast schedule updates from friendsoft/radiobroadcasts.
Select – or define – what is to be recorded.
This is my favorite editor Vim – learn more about it at Vimfest Berlin 2016.
The record
file (upper half) is your local list of broadcasts to actually get recorded. The friendsoft/radiobroadcasts repository already contains a lot of scheduled broadcasts, and most likely you don't want them all.
Also, besides requesting direct additions or changes to friendsoft/radiobroadcasts via issue or pull request, you can always define your very own stations and broadcasts, too. Those are kept in separate local files, and can also be used to override broadcasts that already got scheduled via friendsoft/radiobroadcasts.
Here in this example (lower half) I'm editing directly the friendsoft/radiobroadcasts as I'm a maintainer of it.
The format is an extended version of how Crons are defined. The radiorecorder
heavily relies on the mtdowling/cron-expression package, and also extends it a bit to
@mtdowling: if you read this: thanks a lot for cron-expression, it's great! (Also Guzzle is great, thanks for that, too). If you're interested in those extensions: the current friendsoft/radiorecorder is just a quickly hacked prototype (my focus really was getting the radio broadcasts as soon as possible) – anyways, I'm working on it step by step now and will watch out for a proper extension of mtdowling/cron-expression and possibly come up with an issue or, after talking with you, a merge request on that subject.
Once you've updated the broadcasts, check the schedule directly or via the hourly notification mail.
:arrow_up: Back to first screenshot comment.
Thank you so much!
I discovered Rundeck (http://rundeck.org/) this week. Would that be suitable to offer a simple setup on a Debian VPS or RasPi?
Hi there, do you have got screenshots of your radiorecorder in action? The project sounds very interesting. Thanks.