Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: user-agent string rejected "Unable to open item for playback (Inv (Read 5928 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

user-agent string rejected "Unable to open item for playback (Inv

I'm getting the following error when I open a stream: "Unable to open item for playback (Invalid data, full line expected)"

This started when I upgraded yesterday to v1.2.8 (from v1.1.3 I think). The stream had worked successfully for me for several years prior.

Other media players (VLC for example) continue to play the stream with no problem - hence it does not seem to be a problem external to fb2k itself (e.g., a DNS issue as mentioned in a previous thread).

After reading similar posts and finding nothing that solves my problem (disable 'dynamic track titles', flush DNS cache, etc.), I decided to take a packet capture of the communication between fb2k and the server.

I found this about the capture:

1) This is the very first HTTP message of the entire TCP connection (fourth packet of the connection, immediately following the three TCP handshake packets), and is sent by fb2k, not by the server. Specifically, the request looks like this:

  GET / HTTP/1.1
  Host: amber.streamguys.com:4860
  Connection: close
  User-Agent: foobar2000/1.2.8
  Accept: */*
  Connection: close

2) The server's response contains the following:

  ICY 200 OK
  icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
  icy-notice2:SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
  icy-name:WZBC 128
  icy-genre:Unconventional
  icy-url:
  content-type:audio/mpeg
  icy-pub:1
  icy-br:128

3) The next packet in the TCP connection is a TCP FIN, from fb2k.


More Info ..

I haven't had a chance to revert to my old version of fb2k and compare it to the above capture. But I did capture the HTTP conversation when VLC starts up. The significant thing here, I think, is the user-agent string which differs from fb2k's:

VLC's initial request:

  GET /listen.pls HTTP/1.1
  Host: amber.streamguys.com:4860
  User-Agent: VLC/2.0.6 LibVLC/2.0.6
  Range: bytes=0-
  Connection: close
  Icy-MetaData: 1


.. and the server's response:

  HTTP/1.0 200 OK
  content-type:audio/x-scpls
  Connection: close
  [playlist]
  NumberOfEntries=1
  File1=http://amber.streamguys.com:4860/



.. so I'm wondering if the problem pertains to the user-agent string sent by fb2k. Couldn't find any way to customize this string in fb2k, but perhaps I overlooked something. Does this sound like the problem, and is there a workaround in v1.2.8?

Thanks!
-Bob
Andover, MA



user-agent string rejected "Unable to open item for playback (Inv

Reply #3
.. another difference I just noticed between fb2k's GET request and VLC's GET request:

fb2k:

        GET / HTTP/1.1

VLC:

        GET /listen.pls HTTP/1.1


.. so maybe the user-agent theory isn't the only theory. Maybe the GET request is the problem. Still, marc2003 doesn't have trouble connecting to this stream w/fb2k v1.2.8.

As I said previously, I'm going to re-install w/out any extra components.

user-agent string rejected "Unable to open item for playback (Inv

Reply #4
No problems here either.

user-agent string rejected "Unable to open item for playback (Inv

Reply #5
OK this problem continues to haunt me. I've made additional tests, which raise more questions than answers  Here's what I got:

1. fb2k 1.2.8 on first PC: fails
2. fb2k 1.2.8 on second PC (in the same house): OK
3. VLC on first PC: OK

I've compared the fb2k settings and components of the two PCs and they are identical.

These three findings rule out a couple of things:

A) cannot be an issue with the first PC's network connection, DNS server, etc. Otherwise VLC on the first PC would have failed as well.
B) cannot be an issue with fb2k 1.2.8 in general, since it works fine on another PC in the same network.

I've taken packet captures of all three, the only significant difference I'm able to find is that in the latter two cases, the initial HTTP GET request is broken up into two separate packets (not into IP fragments, but, rather, into two TCP segments), with the server sending a TCP ACK between the two. For the failed case the GET request is sent in one packet.

Yet the reassembled segment from 2 and 3 looks identical to the single segment in 1.

Another difference is that VLC sends "/listen.pls" in the GET request whereas fb2k sends only "/". However this cannot be a problem because fb2k on the second PC works fine using "/" rather than "/listen.pls".

===================================================
PKT 1 from the successful connection:

Transmission Control Protocol, Src Port: 59653 (59653), Dst Port: 4870 (4870), Seq: 1, Ack: 1, Len: 26
    Source port: 59653 (59653)
    Destination port: 4870 (4870)
    [Stream index: 0]
    Sequence number: 1    (relative sequence number)
    [Next sequence number: 27    (relative sequence number)]
    Acknowledgment number: 1    (relative ack number)
    Header length: 20 bytes
    Flags: 0x018 (PSH, ACK)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Nonce: Not set
        .... 0... .... = Congestion Window Reduced (CWR): Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...1 .... = Acknowledgment: Set
        .... .... 1... = Push: Set
        .... .... .0.. = Reset: Not set
        .... .... ..0. = Syn: Not set
        .... .... ...0 = Fin: Not set
    Window size value: 16425
    [Calculated window size: 65700]
    [Window size scaling factor: 4]
    Checksum: 0x57d4 [validation disabled]
        [Good Checksum: False]
        [Bad Checksum: False]
    [SEQ/ACK analysis]
        [Bytes in flight: 26]
    TCP segment data (26 bytes)

===================================================
PKT 2 from the successful connection:

Transmission Control Protocol, Src Port: 59653 (59653), Dst Port: 4870 (4870), Seq: 27, Ack: 1, Len: 124
    Source port: 59653 (59653)
    Destination port: 4870 (4870)
    [Stream index: 0]
    Sequence number: 27    (relative sequence number)
    [Next sequence number: 151    (relative sequence number)]
    Acknowledgment number: 1    (relative ack number)
    Header length: 20 bytes
    Flags: 0x018 (PSH, ACK)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Nonce: Not set
        .... 0... .... = Congestion Window Reduced (CWR): Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...1 .... = Acknowledgment: Set
        .... .... 1... = Push: Set
        .... .... .0.. = Reset: Not set
        .... .... ..0. = Syn: Not set
        .... .... ...0 = Fin: Not set
    Window size value: 16425
    [Calculated window size: 65700]
    [Window size scaling factor: 4]
    Checksum: 0xa516 [validation disabled]
        [Good Checksum: False]
        [Bad Checksum: False]
    [SEQ/ACK analysis]
        [Bytes in flight: 124]
    TCP segment data (124 bytes)
[2 Reassembled TCP Segments (150 bytes): #4(26), #6(124)]
    [Frame: 4, payload: 0-25 (26 bytes)]
    [Frame: 6, payload: 26-149 (124 bytes)]
    [Segment count: 2]
    [Reassembled TCP length: 150]
    [Reassembled TCP Data: 474554202f6c697374656e2e706c7320485454502f312e31...]
Hypertext Transfer Protocol
    GET /listen.pls HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): GET /listen.pls HTTP/1.1\r\n]
            [Message: GET /listen.pls HTTP/1.1\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /listen.pls
        Request Version: HTTP/1.1
    Host: amber.streamguys.com:4870\r\n
    User-Agent: VLC/2.0.6 LibVLC/2.0.6\r\n
    Range: bytes=0-\r\n
    Connection: close\r\n
    Icy-MetaData: 1\r\n
    \r\n
    [Full request URI: http://amber.streamguys.com:4870/listen.pls]
    [HTTP request 1/1]

===================================================
PKT 1 of the FAILED connection:

Transmission Control Protocol, Src Port: 50155 (50155), Dst Port: 4860 (4860), Seq: 1, Ack: 1, Len: 132
    Source port: 50155 (50155)
    Destination port: 4860 (4860)
    [Stream index: 0]
    Sequence number: 1    (relative sequence number)
    [Next sequence number: 133    (relative sequence number)]
    Acknowledgment number: 1    (relative ack number)
    Header length: 20 bytes
    Flags: 0x018 (PSH, ACK)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Nonce: Not set
        .... 0... .... = Congestion Window Reduced (CWR): Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...1 .... = Acknowledgment: Set
        .... .... 1... = Push: Set
        .... .... .0.. = Reset: Not set
        .... .... ..0. = Syn: Not set
        .... .... ...0 = Fin: Not set
    Window size value: 16425
    [Calculated window size: 65700]
    [Window size scaling factor: 4]
    Checksum: 0x5c3c [validation disabled]
        [Good Checksum: False]
        [Bad Checksum: False]
    [SEQ/ACK analysis]
        [Bytes in flight: 132]
Hypertext Transfer Protocol
    GET / HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n]
            [Message: GET / HTTP/1.1\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /
        Request Version: HTTP/1.1
    Host: amber.streamguys.com:4860\r\n
    Connection: close\r\n
    User-Agent: foobar2000/1.2.8\r\n
    Accept: */*\r\n
    Connection: close\r\n
    \r\n
    [Full request URI: http://amber.streamguys.com:4860/]
    [HTTP request 1/1]

user-agent string rejected "Unable to open item for playback (Inv

Reply #6
Not sure how I overlooked this, but I found perhaps a more telling difference, between fb2k v1.2.8 on the two different PCs.

From the failed PC, the HTTP GET request contains two "Connection: close" lines, and does not contain any Icy-Metadata line.

From the successful PC, its HTTP GET request contains only one "Connection: close" line, and does contain the line: "Icy-MetaData:1"

.. these requests are initiated by the PCs, not by the streaming server. So I don't understand why they would differ? How does fb2k construct its HTTP messages?

user-agent string rejected "Unable to open item for playback (Inv

Reply #7
do you have _any_ firewalls / protection software on the mentioned pcs? just to rule this out if you don't..

user-agent string rejected "Unable to open item for playback (Inv

Reply #8
do you have _any_ firewalls / protection software on the mentioned pcs? just to rule this out if you don't..


Yes I do (Win firewall, Avast AV, and a couple of spyware monitors). I just repeated the test with all of them disabled - no change in results

user-agent string rejected "Unable to open item for playback (Inv

Reply #9
Uninstall them and disable Windows Firewall from services.msc to be sure there's nothing blocking it.
Also, if you have a router, try it somewhere else if possible.
Windows 10 Pro x64 // foobar2000 1.3.10

user-agent string rejected "Unable to open item for playback (Inv

Reply #10
.. latest and greatest information: I have multiple accounts on the troubled PC. The fb2k failure *only* occurs for one specific account (!)

that pretty much rules out any fb2k issue (as far as I can see). I've already tried disabling firewalls, etc., to no avail. Next I'll take the advice above and uninstall them rather than just disable them.

 

user-agent string rejected "Unable to open item for playback (Inv

Reply #11
maybe the foobar configuration file is stuffed? trying closing foobar, browse to

%appdata%\foobar2000\configuration

move the core.cfg file outside of this folder (keeping it as a backup). now let foobar start and it will create a new one. see if it works then.