[docs] Add README_RADIO_STREAMS.md

Credit @sfeakes
This commit is contained in:
ejurgensen 2020-05-17 23:51:02 +02:00
parent 8acb2a647d
commit 3c65f8a71e
3 changed files with 102 additions and 0 deletions

View File

@ -20,6 +20,7 @@ nobase_dist_doc_DATA = \
README_ALSA.md \
README_SMARTPL.md \
README_PLAYER_WEBINTERFACE.md \
README_RADIO_STREAMS.md \
scripts/pairinghelper.sh
EXTRA_DIST = \

View File

@ -323,6 +323,10 @@ forked-daapd has support for smart playlists. How to create a smart playlist is
documented in
[README_SMARTPL.md](https://github.com/ejurgensen/forked-daapd/blob/master/README_SMARTPL.md).
If you're not satisfied with internet radio metadata that forked-daapd shows,
then you can read about tweaking it in
[README_RADIO_STREAMS.md](https://github.com/ejurgensen/forked-daapd/blob/master/README_RADIO_STREAMS.md).
## Artwork

97
README_RADIO_STREAMS.md Normal file
View File

@ -0,0 +1,97 @@
# forked-daapd and Radio Stream tweaking
Radio streams have many different ways in how metadata is sent. Many should
just work as expected, but a few may require some tweaking. If you are not
seeing expected title, track, artist, artwork in forked-daapd clients or web UI,
the following may help.
First, understand what and how the particular stream is sending information.
ffprobe is a command that can be used to interegrate most of the stream
information. `ffprobe <http://stream.url>` should give you some useful output,
look at the Metadata section, below is an example.
```
Metadata:
icy-br : 320
icy-description : DJ-mixed blend of modern and classic rock, electronica, world music, and more. Always 100% commercial-free
icy-genre : Eclectic
icy-name : Radio Paradise (320k aac)
icy-pub : 1
icy-url : https://radioparadise.com
StreamTitle : Depeche Mode - Strangelove
StreamUrl : http://img.radioparadise.com/covers/l/B000002LCI.jpg
```
In the example above, all tags are populated with correct information, no
modifications to forked-daapd configuration should be needed. Note that
StreamUrl points to the artwork image file.
Below is another example that will require some tweaks to forked-daapd, Notice
`icy-name` is blank and `StreamUrl` doesn't point to an image.
```
Metadata:
icy-br : 127
icy-pub : 0
icy-description : Unspecified description
icy-url :
icy-genre : various
icy-name :
StreamTitle : Pour Some Sugar On Me - Def Leppard
StreamUrl : https://radio.stream.domain/api9/eventdata/49790578
```
In the above, first fix is the blank name, second is the image artwork.
### 1) Stream Name/Title
Set the name with an EXTINF tag in the m3u playlist file:
```
#EXTM3U
#EXTINF:-1, - My Radio Stream Name
http://radio.stream.domain/stream.url
```
The format is basically `#EXTINF:<length>, <Artist Name> - <Artist Title>`.
Length is -1 since it's a stream, `<Artist Name>` was left blank since
`StreamTitle` is accurate in the Metadata but `<Artist Title>` was set to
`My Radio Stream Name` since `icy-name` was blank.
### 2) Artwork (and track duration)
If `StreamUrl` does not point directly to an artwork file then the link may be
to a json file that contains an artwork link. If so, you can make forked-daapd
download the file automatically and search for an artwork link, and also track
duration.
Try to download the file, e.g. with `curl "https://radio.stream.domain/api9/eventdata/49790578"`.
Let's assume you get something like this:
```
{
"eventId": 49793707,
"eventStart": "2020-05-08 16:23:03",
"eventFinish": "2020-05-08 16:27:21",
"eventDuration": 254,
"eventType": "Song",
"eventSongTitle": "Pour Some Sugar On Me",
"eventSongArtist": "Def Leppard",
"eventImageUrl": "https://radio.stream.domain/artist/1-1/320x320/562.jpg?ver=1465083491",
"eventImageUrlSmall": "https://radio.stream.domain/artist/1-1/160x160/562.jpg?ver=1465083491",
"eventAppleMusicUrl": "https://geo.itunes.apple.com/dk/album/530707298?i=530707313"
}
```
In this case, you would need to tell forked-daapd to look for "eventDuration"
and "eventImageUrl" (or just "duration" and "url"). You can do that like this:
```
curl -X PUT "http://localhost:3689/api/settings/misc/streamurl_keywords_length" --data "{\"name\":\"streamurl_keywords_length\",\"value\":\"duration\"}"
curl -X PUT "http://localhost:3689/api/settings/misc/streamurl_keywords_artwork_url" --data "{\"name\":\"streamurl_keywords_artwork_url\",\"value\":\"url\"}
```
If you want multiple search phrases then comma separate, e.g. "duration,length".
If your radio station is not returning any artwork links, you can also just make
a static artwork by placing a png/jpg in the same directory as the m3u, and with
the same name, e.g. `My Radio Stream.jpg` for `My Radio Stream.m3u`.