diff --git a/README.md b/README.md index 2c726cf..3bdc696 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,12 @@ -<<<<<<< HEAD -# subfmproxy - A Subsonic FM Transmitter Proxy: Stream your music to your retro radios! ======= + +## Subsonic clients tested + +- https://github.com/jeffvli/sonixd +- https://substreamerapp.com/ + ## Inspiration - https://github.com/dlsniper/fmradio and talk https://www.youtube.com/watch?v=o5MTRQmhvCk @@ -12,4 +15,4 @@ A Subsonic FM Transmitter Proxy: Stream your music to your retro radios! - fm transmitter C/C++ projects such as - https://github.com/markondej/fm_transmitter - https://github.com/MundeepL/PiFM ->>>>>>> 7dbdff8 (initial commit) + diff --git a/examplerequests.txt b/examplerequests.md similarity index 52% rename from examplerequests.txt rename to examplerequests.md index a1b3833..e22737c 100644 --- a/examplerequests.txt +++ b/examplerequests.md @@ -1,21 +1,52 @@ -http://www.subsonic.org/pages/api.jsp -LOGIN +API: See http://www.subsonic.org/pages/api.jsp +## LOGIN + +``` 2023/02/03 14:14:30 req /rest/ping.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json GET +``` +and +``` 2023/02/03 14:14:30 req /rest/ping.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json GET 2023/02/03 14:14:31 req /rest/getAlbumList2.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&type=recent&size=20 GET 2023/02/03 14:14:31 req /rest/getAlbumList2.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&type=frequent&size=20 GET 2023/02/03 14:14:31 req /rest/getAlbumList2.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&type=random&size=20 GET 2023/02/03 14:14:31 req /rest/getRandomSongs.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&size=50 GET +``` -playing music: +## playing music: +``` 2023/02/03 14:17:16 req /rest/stream.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&id=59d5e314f94f72d30df1a20c537e158c&maxBitRate=320&format=mp3&estimateContentLength=false GET 2023/02/03 14:18:07 req /rest/stream.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&id=1bc38cc2c0cfaa302aecdd379abfe938&maxBitRate=320&format=mp3&estimateContentLength=false GET +``` -doorspoelen naar volgende: +Pausing is handled client-side!! Shit... +### Replaying tracks that have been played before: (by Sonixd) + +``` +2023/02/09 13:02:56 req /rest/getLyrics.view?artist=Ion+Storm&title=Endgame+1+-+Deus+Ex+Ending+1&u=jefklak&s=9AmJznnKT3ZH54pT&t=72802abe6d34b1db0798b70c80e95139&v=1.13.0&c=sonixd&f=json GET +``` + +This doesn't trigger another `stream` call! Cache?? + +That means we _could_ implement our own cache by keeping track of title + artist off the `getLyrics.view` call, but it's not 1-to-1 matched to a `stream.view` call: there's no ID here! +That means getArist calls for every id and storing those as well, just in case a getLyrics one gets called? + +### fast forward to the next one: (by Substreamer) + +``` 2023/02/03 14:17:47 req /rest/scrobble.view?u=jefklak&t=8c90da505334799b3184e9fb0539814d&s=LEcB8n9&v=1.13.0&c=substreamer&f=json&id=97394aea4b552463b3c3519777e5d8ca&submission=false GET +``` + +### fast forward to the next one: (by Sonixd) + +``` +2023/02/09 13:01:13 req /rest/getCoverArt.view?id=d47850ffc9ddaf67c73d396e04eba800&u=jefklak&s=9AmJznnKT3ZH54pT&t=72802abe6d34b1db0798b70c80e95139&v=1.13.0&c=sonixd GET +2023/02/09 13:01:13 req /rest/getLyrics.view?artist=Ion+Storm&title=Credits+-+the+Illuminati&u=jefklak&s=9AmJznnKT3ZH54pT&t=72802abe6d34b1db0798b70c80e95139&v=1.13.0&c=sonixd&f=json GET +2023/02/09 13:01:13 req /rest/stream.view?id=2fef30381e52b44eecfdf9bf94d85ff8&u=jefklak&s=9AmJznnKT3ZH54pT&t=72802abe6d34b1db0798b70c80e95139&v=1.13.0&c=sonixd GET +```