====== FIP Radio ====== Meilleure radio du monde. ===== API ===== ==== Endpoint ==== URL non encodée pour FIP Groove : ''https://www.fip.fr/latest/api/graphql?operationName=Now&variables={"bannerPreset":"600x600-noTransform","stationId":66,"previousTrackLimit":3}&extensions={"persistedQuery":{"version":1,"sha256Hash":"8a931c7d177ff69709a79f4c213bd2403f0c11836c560bc22da55628d8100df8"}}'' === variables === { "bannerPreset": "600x600-noTransform", "stationId": 69, "previousTrackLimit": 3 } * ''bannerPreset'' : optionnel * réponse identique si omis * ''stationId'' : requis * ''previousTrackLimit'' : requis * ''Variable "$previousTrackLimit" of required type "Int!" was not provided.'' * maximum: 100 === extensions === { "persistedQuery": { "version": 1, "sha256Hash": "8a931c7d177ff69709a79f4c213bd2403f0c11836c560bc22da55628d8100df8" } } ==== stationId ==== ^ Radio ^ stationId ^ | FIP | 7 | | FIP tout nouveau, tout FIP | 70 | | FIP autour du reggae | 71 | | FIP autour de l'électro | 74 | | FIP autour du rock | 70 | | FIP autour du jazz | 65 | | FIP autour du groove | 66 | | FIP autour du monde | 69 | (d'autres URL sur [[https://github.com/adblockradio/webradio-metadata/blob/master/parsers/France/index.js|adblockradio/webradio-metadata]]) ==== Requête ==== ''curl "https://www.fip.fr/latest/api/graphql?operationName=Now&variables=%7B%22bannerPreset%22%3A%22600x600-noTransform%22%2C%22stationId%22%3A66%2C%22previousTrackLimit%22%3A3%7D&extensions=%7B%22persistedQuery%22%3A%7B%22version%22%3A1%2C%22sha256Hash%22%3A%228a931c7d177ff69709a79f4c213bd2403f0c11836c560bc22da55628d8100df8%22%7D%7D" | jq .'' ==== Reply ==== { "data": { "now": { "__typename": "Now", "playing_item": { "__typename": "TimelineItem", "title": "Tom Tyler", "subtitle": "Swing children", "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/11/2523200c-f27b-4128-bbef-07dc3b64c105/400x400_rf_omm_0001585910_dnc.0072443770.jpg", "start_time": 1581177429, "end_time": 1581177772 }, "program": null, "song": { "__typename": "SongOnAir", "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/11/2523200c-f27b-4128-bbef-07dc3b64c105/400x400_rf_omm_0001585910_dnc.0072443770.jpg", "title": "Swing children", "interpreters": [ "Tom Tyler" ], "musical_kind": "Musique électronique ", "label": "DC RECORDINGS", "album": "Fusions and illusions (EP)", "external_links": { "youtube": { "id": "jGLdW5p5JCQ", "link": "https://www.youtube.com/watch?v=jGLdW5p5JCQ", "image": "https://i.ytimg.com/vi/jGLdW5p5JCQ/hqdefault.jpg", "__typename": "ExternalLink" }, "deezer": { "id": "3081071", "link": "https://www.deezer.com/track/3081071", "image": "https://e-cdns-images.dzcdn.net/images/cover/e0dd38c3a1a60d97e5f890e3a7b53b7c/1000x1000-000000-80-0-0.jpg", "__typename": "ExternalLink" }, "itunes": { "id": "253330342", "link": "https://music.apple.com/fr/album/swing-children/253330339?i=253330342&uo=4", "image": "https://is4-ssl.mzstatic.com/image/thumb/Music/v4/26/e2/e5/26e2e579-965b-834d-7fb9-f10e9738b244/source/100x100bb.jpg", "__typename": "ExternalLink" }, "spotify": { "id": "61XakPvq2yQJjMt41qEUb3", "link": "https://open.spotify.com/track/61XakPvq2yQJjMt41qEUb3", "image": "https://i.scdn.co/image/ab67616d0000b2736fe4000b68c05d54c385aa91", "__typename": "ExternalLink" }, "__typename": "ExternalLinks" } }, "server_time": 1581177609, "next_refresh": 1581177773, "mode": "song" }, "previousTracks": { "__typename": "HistoryCursor", "edges": [ { "__typename": "TimeLineItemEdge", "node": { "__typename": "TimelineItem", "title": "Oxmo Puccino", "subtitle": "Oui je", "start_time": 1581177260, "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/11/cddec930-03ec-46ab-a706-1a99f90459d4/400x400_rf_omm_0001456862_dnc.0065086855.jpg" } }, { "__typename": "TimeLineItemEdge", "node": { "__typename": "TimelineItem", "title": "Abstract Orchestra", "subtitle": "Official / Fall in love", "start_time": 1581177053, "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/11/c0466beb-0826-4198-85cb-febe2513de2e/400x400_rf_omm_0001588719_dnc.0072612810.jpg" } }, { "__typename": "TimeLineItemEdge", "node": { "__typename": "TimelineItem", "title": "Cher", "subtitle": "I walked on guilded splinters", "start_time": 1581176908, "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/12/1fdcf809-275d-4b4b-b095-c5c20742485b/400x400_rf_omm_0001454096_dnc.0064957454.jpg" } } ] }, "nextTracks": [ { "__typename": "TimelineItem", "title": "Curtis Harding", "subtitle": "Wednesday morning atonement", "start_time": 1581177808, "cover": "https://cdn.radiofrance.fr/s3/cruiser-production/2019/11/e1bf1eb4-e219-4cb8-9118-73f484c42aa9/400x400_rf_omm_0001572660_dnc.0071608565.jpg" } ] } } ==== youtube-dl ==== curl --silent $url | jq ' .data.now.song.external_links.youtube.link ' "https://www.youtube.com/watch?v=vtP3bj1UxEY" ===== Check me ===== * https://github.com/goundoulf/rf-dl/blob/master/rf-dl : bash, parse le HTML, download le MP3 * https://github.com/jcoin/fipradioPlaylist-py * https://github.com/Zopieux/fipradio * https://github.com/protz/fip-notifier * https://github.com/feeloow/fip-indicator : applet avec des bouts de Spotify * https://github.com/rbelouin/fip-server Et [[https://github.com/search?utf8=%E2%9C%93&q=fipradio|d'autres trucs sur Github]]. ===== Voir aussi ===== ==== Radio Nova ==== $ curl --silent http://www.nova.fr/radio/19577/player | jq . { "radio": { "name": "Radio Nova", "is_on_air_activated": "1", "high_def_stream_url": "http://novazz.ice.infomaniak.ch/novazz-128.mp3", "low_def_stream_url": "http://radionova.ice.infomaniak.ch/radionova-low.mp3", "thumbnail": "/sites/default/files/styles/thumb_player/public/2017-06/Grand_Mix_460x460.jpg?itok=tvTxS6DJ", "image": "/sites/default/files/2017-06/Grand_Mix_460x460.jpg", "background_image": "/sites/default/files/2017-06/Grand_Mix_825x660.jpg" }, "currentShow": { "title": "Le Grand Mix Samedi", "start_time": "14:00", "end_time": "18:30", "main_podcast": { "id": "49146", "spotify_url": null, "deezer_url": "https://www.deezer.com/show/523152", "itunes_url": "https://podcasts.apple.com/us/podcast/id1480233172", "feedburner_url": "https://feeds.feedburner.com/NovaLaSource" } }, "currentTrack": { "id": "22367", "title": "CRUSH", "artist": "DUCKWRTH", "image": "/sites/default/files/CQCT/2020-01/duckwrth-crush-22367.jpeg", "thumbnail": "/sites/default/files/CQCT/2020-01/duckwrth-crush-22367-thumbnail-22367.jpeg", "diffusion_date": "2020-02-08 17:16:05", "duration": "02:13", "spotify_url": "https://open.spotify.com/track/3aUviSdBVbsdmH406j5GZC", "deezer_url": "https://www.deezer.com/track/739443542", "itunes_url": "https://itunes.apple.com/WebObjects/MZStore.woa/wa/search?term=DUCKWRTH+CRUSH&media=music&entity=song&at=10ltae&ct=cetaitkoicetitre" } }