How to play internet radio URL with query?

Philippe Normand phil at base-art.net
Fri Jan 18 13:13:15 UTC 2019


On Thu, 2019-01-17 at 23:47 -0600, diracsbracket wrote:
> Hi,
> I am trying to make Clementine play an internet radio that has a
> playlist
> URL that includes a long secret query string:
> 
> http://some.radio.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3935363f5cd
> ... e734b0ae2ddd2
> 
> I tried this in VLC (which does not use GStreamer of course), and it
> works.
> However, I would like to make it work on Clementine. On Clementine
> fora, it
> is suggested that the problem lies with GStreamer. 
> 
> For example, I tried using on Debian 9.5 (raplaced part of the string
> by ...
> for the sake of brevity here):
> 
> ```
> gst-launch-1.0 -v playbin
> uri=
> http://some.radio.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3935363f5cd23e03e1...efc6c3e734b0ae2ddd2
> ```
> 
> This results in the following output:
> 
> ```
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: ring-buffer-
> max-size
> = 0
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: buffer-size =
> -1
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: buffer-
> duration = -1
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: use-buffering
> = false
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: download =
> false
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: uri =
> http://kong.kbskme.gscdn.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3935363f5cd23e03e180773f3d01da3a63bf60922489c40a6814cf3be0043f69a8d23e0a3a13b5617cdd33b5c1bdd3a27a2bf587ac7386a4a2dd64b5f0fd89ccf55f2133a4013efc6c3e734b0ae2ddd2
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: connection-
> speed = 0
> /GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: source =
> "\(GstSoupHTTPSrc\)\ source"
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.G
> stPad:src:
> caps = application/x-hls
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:sink:
> caps = application/x-hls
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:src_0:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-1.GstPad:sink:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-1.GstPad:src:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0.GstGhostPad:sink.GstProxyPad:proxypad0:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0.GstGhostPad:sink.GstProxyPad:proxypad3:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0/GstTSDemux:tsdemux0.GstPad:sink:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:sink:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0.GstGhostPad:sink:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:sink:
> caps =
> video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-
> 0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0.GstProxyPad:proxypa
> d2:
> caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
> /GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-
> 0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:sink:
> caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
> ```
> 
> But it stops after that.  If I use playbin3, I get a single additiona
> line
> 
> ```
> buffering...0%
> ```
> 
> Anyone has an idea what is going on or what the required
> modifications might
> be to make Clementine work with this kind of URL ?
> 

The streaming server might perform checks on the client (user-agent,
referer or cookies). Can you set GST_DEBUG like this?

GST_DEBUG_FILE=gst.log GST_DEBUG="3,soup*:6" gst-launch-1.0 ...

And send the compressed gst.log file please.

Philippe

> Thanks!!!
> ```
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list