{"id":6558,"date":"2021-01-04T18:21:43","date_gmt":"2021-01-04T18:21:43","guid":{"rendered":"https:\/\/manuals.qantumthemes.xyz\/onair2\/?post_type=ht_kb&#038;p=6558"},"modified":"2021-01-04T18:24:12","modified_gmt":"2021-01-04T18:24:12","slug":"11-4-server-type-icecast","status":"publish","type":"ht_kb","link":"https:\/\/manuals.qantumthemes.xyz\/onair2\/knowledge-base\/11-4-server-type-icecast\/","title":{"rendered":"11.04 Server Type &#8211; Icecast"},"content":{"rendered":"<p><strong>Step 1:<\/strong>\u00a0In your WordPress Admin, edit or create your Radio Channel<\/p>\n<p><strong>Step 2:<\/strong> make sure there is no Metadata checked and there is NO shoutcast host set<\/p>\n<p><strong>Step 3:<\/strong>\u00a0Now you need to <strong>enter your STATS URL.<\/strong><\/p>\n<p><a href=\"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6561\" src=\"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings.jpg\" alt=\"\" width=\"856\" height=\"214\" srcset=\"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings.jpg 856w, https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings-300x75.jpg 300w, https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings-768x192.jpg 768w, https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings-50x13.jpg 50w, https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings-600x150.jpg 600w, https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-content\/uploads\/2021\/01\/icecast-settings-320x80.jpg 320w\" sizes=\"(max-width: 856px) 100vw, 856px\" \/><\/a><\/p>\n<p><strong>Icecast<\/strong>\u00a0can have\u00a0<strong>any<\/strong>\u00a0custom URL, but the default STATS endpoint is<\/p>\n<pre>\/status-json.xsl<\/pre>\n<p>You should add the Endpoint (copy it from above) and attach it to the end of your Icecast url, you should be able to see the json data.<\/p>\n<h4 id=\"check-the-validity-of-your-json-data\" >Check the validity of your Json data<\/h4>\n<p>The json page needs to look like this:<\/p>\n<p><a href=\"https:\/\/pro.radio\/shop\/manual\/icecast-json-example.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-549\" src=\"https:\/\/pro.radio\/shop\/manual\/icecast-json-example.png\" alt=\"\" width=\"1013\" height=\"295\" \/><\/a><\/p>\n<p>You can copy the content of the page and paste it in the website to verify if it&#8217;s correct.<\/p>\n<pre>http:\/\/jsonviewer.stack.hu\/<\/pre>\n<p>After pasting it, click &#8220;Viewer&#8221; and you should see the formatted content, like this example of a multi-channel Icecast server:<\/p>\n<p><a href=\"https:\/\/pro.radio\/shop\/manual\/icecast-viewer-example.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-550\" src=\"https:\/\/pro.radio\/shop\/manual\/icecast-viewer-example.png\" alt=\"\" width=\"657\" height=\"882\" \/><\/a><\/p>\n<p><strong>If instead you see an error, like this:<\/strong><\/p>\n<p><a href=\"https:\/\/pro.radio\/shop\/manual\/json-error.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-545\" src=\"https:\/\/pro.radio\/shop\/manual\/json-error.png\" alt=\"\" width=\"373\" height=\"244\" \/><\/a><\/p>\n<p>it means that your JSON formatting is broken, and this is usually caused<strong>\u00a0by a software error on your streaming server<\/strong>. You should take some screenshots and<strong>\u00a0contact your streaming provider<\/strong>, asking\u00a0<strong>them<\/strong>\u00a0to fix it.<\/p>\n<p><strong>Icecast page (not required in settings):<\/strong><br \/>\nhttp:\/\/<em>123.123<\/em>.79.181:4090\/<\/p>\n<p><strong>MP3 URL:<\/strong><br \/>\n<em>http:\/\/123.123.71.79.181.79.181:4090\/live<\/em><\/p>\n<p><strong>Icecast json URL:<\/strong><br \/>\n<em>http:\/\/123.123.79.181:4090\/status-json.xsl<\/em><\/p>\n<p><strong>Icecast channel:<\/strong>\u00a01<\/p>\n<p><strong>Icecast mountpoint:<\/strong>\u00a0not required<\/p>\n<h4 id=\"alternative-endpoints\" >Alternative endpoints<\/h4>\n<p>The standard endpoint for the Icecast stats page is \/stats-json.xsl, but some can use:<\/p>\n<ul>\n<li>stats-json.xsl<\/li>\n<li>status.xsl<\/li>\n<li>status-json.xsl<\/li>\n<li>stats.xsl<\/li>\n<\/ul>\n<p>As any streaming provider\u00a0<strong>can use a custom URL.<\/strong><\/p>\n<p><strong>If you don\u2019t know<\/strong>\u00a0the correct Icecast status json URL,\u00a0<strong>you need to ask to your streaming provider<\/strong>\u00a0(your broadcasting provider), as<strong>\u00a0the address can be anything, like<\/strong><\/p>\n<pre>\/white-unicorn-flying.xsl<\/pre>\n<p>so, if you don\u2019t know the exact stats URL of your Icecast channel,\u00a0<strong>only your provider can give you this information<\/strong>.<\/p>\n<h2 id=\"icecast-mountpoint-and-channels\" >Icecast mountpoint and channels<\/h2>\n<p>Some Icecast formats use different moutpoint URLs for the data, some others use always the same URL, containing the song titles of every channel.<\/p>\n<p><strong>There is no fixed standard for this, as it\u2019s up to the system administrator, so you may need to check the structure of your feed to find the right settings.<\/strong><\/p>\n<p>This is an example of a multi-channel icecast page<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-102\" src=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-demo.jpg\" sizes=\"(max-width: 1192px) 100vw, 1192px\" srcset=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-demo.jpg 1192w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-demo-300x264.jpg 300w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-demo-1024x901.jpg 1024w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-demo-768x676.jpg 768w\" alt=\"\" width=\"1192\" height=\"1049\" \/><\/p>\n<p>To know the correct settings, you can open the stats file, copy the json output and paste it on\u00a0<a href=\"http:\/\/jsonviewer.stack.hu\/\" target=\"_blank\" rel=\"noopener noreferrer\">jsonviewer<\/a><\/p>\n<p>Example of the<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-104\" src=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-10-at-17.46.52.png\" sizes=\"(max-width: 916px) 100vw, 916px\" srcset=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-10-at-17.46.52.png 916w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-10-at-17.46.52-300x110.png 300w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-10-at-17.46.52-768x281.png 768w\" alt=\"\" width=\"916\" height=\"335\" \/><\/p>\n<p>In this example, there is no mountpoint required, but there are multiple channels.\u00a0<strong>You can set the numeric channel ID of the right song titles in your channel settings.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-103\" src=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-channels.jpg\" sizes=\"(max-width: 980px) 100vw, 980px\" srcset=\"https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-channels.jpg 980w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-channels-300x291.jpg 300w, https:\/\/erplayer.pro.radio\/manual\/wp-content\/uploads\/2020\/03\/icecast-channels-768x745.jpg 768w\" alt=\"\" width=\"980\" height=\"951\" \/><\/p>\n<h3 id=\"troubleshooting\" >Troubleshooting:<\/h3>\n<ol>\n<li>If you can\u2019t see the titles, the first thing to do is\u00a0<strong>to verify the status-json.xsl page<\/strong>. Open it in the browser, and make sure you can see the Json data (see screenshots above)<\/li>\n<li>If your\u00a0<strong>website<\/strong>\u00a0is\u00a0<strong>HTTPS<\/strong>\u00a0and your stream is\u00a0<strong>HTTP<\/strong>, you generally\u00a0<strong>cannot<\/strong>\u00a0display titles,\u00a0<strong>nor listen to the music.\u00a0In this case you may want to put the site in http or change streaming provider.<\/strong><\/li>\n<li>If the protocol is ok, and you see the json data, but still no title appears, your provider may be blocking the access because of wrong Cross Origin Resource Sharing policies (CORS).<br \/>\n<strong>This means that your Icecast server is missing a little line of code that allows your website to read the song titles.<br \/>\n<\/strong>To check this, open the browser javascript console, and check if you see any error mentioning a CORS block preventing the access.<br \/>\nIn this case, you can try the proxy (make sure your web server allows it) and\/or eventually ask to your streaming provider to enable the CORS policies on the server (thish is how it should be)<br \/>\n<a href=\"https:\/\/enable-cors.org\/server.html\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>https:\/\/enable-cors.org\/server.html<\/strong><\/a><\/li>\n<li>If your stream is HTTP<strong>S<\/strong>, your website is HTTP<strong>S<\/strong>\u00a0and your\u00a0<strong>Icecast<\/strong>\u00a0page is\u00a0<strong>HTTP,\u00a0<\/strong>you generally cannot display titles\u00a0<strong>without<\/strong>\u00a0using the proxy.<br \/>\nIt would be much better if you use a streaming provider that gives you HTTPS access, but you can also try our <strong>proxy<\/strong> (enable the proxy in the customizer, under the Radio settings).<\/li>\n<li>If the proxy doesn\u2019t work either, please<strong>\u00a0ask your website hosting<\/strong>\u00a0provider (where you bought your domain and\/or hosting) to make sure that your website can connect, server side, to the port of the shoutcast channel.In the example above, the\u00a0<strong>channel<\/strong>\u00a0is\u00a0<strong>8000<\/strong>, so you need to verify with your\u00a0<strong>website server provider<\/strong>\u00a0that your site can connect, server side via cUrl, using the port 8000.<\/li>\n<li>If your\u00a0<strong>streaming provider<\/strong>\u00a0has an\u00a0<strong>HTTPS<\/strong>\u00a0stream but the certificate is\u00a0<strong>invalid<\/strong>, your browser will refuse the connection, for obvious security restrictions.\u00a0<strong>You can verify this condition by opening the https url of your Streaming page on the browser.<\/strong><\/li>\n<li>If you still need help setting up your radio,\u00a0<strong>please contact our helpdesk.<\/strong><\/li>\n<\/ol>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht_kb_category":[654],"ht_kb_tag":[663,656,561,647,661,559,532,662],"class_list":["post-6558","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-radio-streaming-channel-set-up","ht_kb_tag-broadcast","ht_kb_tag-channel","ht_kb_tag-icecast","ht_kb_tag-server","ht_kb_tag-song","ht_kb_tag-streaming","ht_kb_tag-title","ht_kb_tag-type"],"_links":{"self":[{"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb\/6558"}],"collection":[{"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/comments?post=6558"}],"version-history":[{"count":3,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb\/6558\/revisions"}],"predecessor-version":[{"id":6583,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb\/6558\/revisions\/6583"}],"wp:attachment":[{"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/media?parent=6558"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb_category?post=6558"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/manuals.qantumthemes.xyz\/onair2\/wp-json\/wp\/v2\/ht_kb_tag?post=6558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}