<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 07/06/2014 06:43 AM, John Selbie
      wrote:<br>
    </div>
    <blockquote cite="mid:BLU202-W9318B8D75EA636ECC003EB1020@phx.gbl"
      type="cite">
      <style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style>
      <div dir="ltr">
        <div><span style="font-size: 12pt;">When "Icy-MetaData: 1" is in
            the HTTP request to the server, that indicates that the
            client wants to receive meta data inlined with the mp3 data
            stream. &nbsp;The metadata interval is reported by the server via
            the "icy-metaint" header in the response stream.</span></div>
        <div>
          <div><br>
          </div>
          <div>
            <div><span style="font-size: 12pt;">Such data looks like the
                following within the mp3 stream</span></div>
            <div><br>
            </div>
            <div>&nbsp; &nbsp; StreamTitle='Ozzy Osbourne - Crazy
              Train';StreamUrl='<a class="moz-txt-link-freetext" href="http://myserver.org">http://myserver.org</a>';</div>
            <div><br>
            </div>
            <div><span style="font-size: 12pt;">Essentially a series of
                name/value pairs formatted with single-tick quotes
                around each value and delimited with Equals and
                Semicolon chars.</span></div>
            <div><span style="font-size: 12pt;"><br>
              </span></div>
            <div><span style="font-size: 12pt;">Here is the question.
                &nbsp;If the song title itself contains a quote char in it:</span></div>
            <div><span style="font-size: 12pt;"><br>
              </span></div>
            <div><span style="font-size: 12pt;">&nbsp; &nbsp;
                StreamTitle='Destiny's Child - Emotion';</span></div>
            <div><span style="font-size: 12pt;"><br>
              </span></div>
            <div><span style="font-size: 12pt;">How is the tick mark
                within that stream title expected to be escaped such
                that the StreamTitle isn't parsed as just "Destiny" ?</span></div>
            <div><span style="font-size: 12pt;"><br>
              </span></div>
            <div>Is it a URL Encoding &nbsp;(StreamTitle='Destiny%27s Child -
              Emotion';) ?</div>
            <div><br>
            </div>
            <div>A C style Encoding (StreamTitle='Destiny\'s Child -
              Emotion';) ?</div>
            <div><br>
            </div>
            <div>Or something else?</div>
            <div><br>
            </div>
            <div>I didn't see any escape code in the icecast server
              sources. &nbsp;But I did see URL encodings for metadata in the
              libshout broadcast client sources. &nbsp;So I suspect that's
              the answer. But I wasn't sure if the server did any
              re-encoding on the strings.</div>
            <div><br>
            </div>
            <div>Can someone confirm?</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    That's legacy-metadata, modelled after Shoutcast. So you'd need to
    look how they do it and how players then expect it.<br>
    It is possible that there is a genuine bug in Icecast for not
    escaping this, but the core team has no time to spend on legacy
    support. So if someone wants to see this fixed, send a patch please,
    together with some explanation how it follows general practice
    (there is no standard).<br>
    <br>
    Cheers<br>
    <br>
    Thomas<br>
  </body>
</html>