helix engine last.fm streaming broken?

Paul Cifarelli paul at cifarelli.net
Sat Dec 16 14:13:22 UTC 2006


should be fixed in SVN now

Paul

Paul Cifarelli wrote:
> I'll have a look at this today...
> 
> Christie Harris wrote:
>> When trying to play a last.fm stream with the helix engine, I get the
>> following console spew, and no sound output. Amarok THINKS it's
>> connected to the stream according to the context browser, but the
>> stream doesn't play. Looking at my network usage, it is actually
>> streaming, and if I click stop it stops "streaming".
>>
>> As far as I can tell, all that's changed here is a recent ruby update
>> (gentoo) from ruby-1.8.5-r3 to ruby-1.8.5_p2, however downgrading ruby
>> doesn't help.
>> Changing engine to xine allows the stream to play (console output
>> follows helix stuff).
>>
>> Cheers, Christie
>>
>>
>> --using helix engine
>> amarok: [LastFm] AMAROK_PROXY: host 87.117.229.83
>> amarok: [LastFm] AMAROK_PROXY: 36057
>> amarok: [LastFm] AMAROK_PROXY: running with port: 80 and host:
>> 87.117.229.83
>> amarok: [LastFm] AMAROK_PROXY: "GET /lastfm.mp3 HTTP/1.1\r\n"
>> amarok: [LastFm] AMAROK_PROXY: "GET
>> http://87.117.229.83/last.mp3?Session=94157025952bc5f306623afc0e4849ed
>> HTTP/1.1\r\nHost: 87.117.229.83:80\r\n\r\n"
>> amarok: [LastFm] AMAROK_PROXY: GET /lastfm.mp3 HTTP/1.1
>> amarok: [LastFm]  but sending GET
>> http://87.117.229.83/last.mp3?Session=94157025952bc5f306623afc0e4849ed
>> HTTP/1.1
>> amarok: [LastFm] Host: 87.117.229.83:80
>> amarok: [LastFm]
>> amarok: [LastFm] AMAROK_PROXY: COPY from amarok -> serv
>> amarok: [LastFm] AMAROK_PROXY: cp_to_empty_outward( income =>
>> #<TCPSocket:0xb7ebc730>, output => #<TCPSocket:0xb7ebc320>
>> amarok: [LastFm] AMAROK_PROXY: Accept: */*
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: User-Agent: RMA/1.0 (compatible;
>> RealMedia)
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Icy-MetaData: 1
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Language: en-US
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: RegionData: 0
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: ClientID:
>> Linux_2.6_10.0.0.0_play32_RN01_EN_586
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: GUID: 00000000-0000-0000-0000-000000000000
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: SupportsMaximumASMBandwidth: 1
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Connection: Keep-Alive
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Host: localhost:36057
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Accept-Language: en-US
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: Accept-Encoding: gzip
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY:
>> amarok: [LastFm] AMAROK_PROXY: data sent.
>> amarok: [LastFm] AMAROK_PROXY: COPY from serv -> amarok
>> amarok: [LastFm] AMAROK_PROXY: cp_to_empty_inward( income =>
>> #<TCPSocket:0xb7ebc320>, output => #<TCPSocket:0xb7ebc730>
>> amarok: [LastFm] AMAROK_PROXY: HTTP/1.0 200 OK
>> amarok: [LastFm] AMAROK_PROXY: Server: last.fm Streaming Server
>> amarok: [LastFm] AMAROK_PROXY: Content-type: audio/mpeg
>> amarok: [LastFm] AMAROK_PROXY: Cache-control: no-cache
>> amarok: [LastFm] AMAROK_PROXY: Pragma: no-cache
>> amarok: [LastFm] AMAROK_PROXY: Date: Tue, 12 Dec 2006 00:48:19 GMT
>> amarok: [LastFm] AMAROK_PROXY:
>> amarok: [LastFm] AMAROK_PROXY: Before cp_all()
>> amarok: [LastFm] AMAROK_PROXY: cp_all( income =>
>> #<TCPSocket:0xb7ebc320>, output => #<TCPSocket:0xb7ebc730>
>> amarok: [LastFm] AMAROK_PROXY: SYNC
>> amarok: BEGIN: void LastFm::WebService::metaDataFinished(int, bool)
>> amarok:   [LastFm] price=
>> shopname=
>> clickthrulink=
>> streaming=true
>> discovery=-1
>> station=Global Tag Radio: psytrance
>> artist=DNA
>> artist_url=http://www.last.fm/music/DNA
>> track=The Sign
>> track_url=http://www.last.fm/music/DNA/_/The+Sign
>> album=Pavilion
>> album_url=http://www.last.fm/music/DNA/Pavilion
>> albumcover_small=http://static.last.fm/depth/catalogue/noimage/cover_large.gif
>>
>> albumcover_medium=http://static.last.fm/depth/catalogue/noimage/cover_large.gif
>>
>> albumcover_large=http://static.last.fm/depth/catalogue/noimage/cover_med.gif
>>
>> trackduration=435
>> radiomode=1
>> recordtoprofile=1
>> amarok:
>> amarok: END__: void LastFm::WebService::metaDataFinished(int, bool) -
>> Took 0.005s
>> in engine context, key is <HTTPProxyAutoConfig>
>> in engine context, key is <ProxyAutoConfig>
>> in engine context, key is <HTTPProxySupport>
>> in engine context, key is <CookiesEnabled>
>> in engine context, key is <MaxBandwidth>
>> in engine context, key is <LoadTest>
>> in engine context, key is <EnforceMaxBandwidth>
>> amarok: [LastFm] AMAROK_PROXY: error from output.write, Broken pipe
>> amarok: [LastFm] AMAROK_PROXY:
>> ["/usr/kde/3.5/bin/amarok_proxy.rb:109:in `write'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:109:in `safe_write'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:160:in `cp_all_inward'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:158:in `loop'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:158:in `cp_all_inward'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:98:in `initialize'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:224:in `new'",
>> "/usr/kde/3.5/bin/amarok_proxy.rb:224"]
>> amarok: [LastFm] AMAROK_PROXY: error from o.write, unexpected break
>> amarok: [LastFm] AMAROK_PROXY: EOF Detected, reconnecting
>> amarok: [LastFm] AMAROK_PROXY: cp_all( income =>
>> #<TCPSocket:0xb7ebc320>, output => #<TCPSocket:0xb7ebb970>
>> amarok: BEGIN: void LastFm::WebService::fetchImageFinished(KIO::Job*)
>> amarok:   [Moodbar] Resetting moodbar: /Psytrance
>> amarok: BEGIN: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool)
>> amarok:     [Scrobbler] It's still the same track.
>> amarok: BEGIN: virtual void ThreadWeaver::Thread::run()
>> amarok: END__: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool) - Took 0.13s
>> amarok: END__: void LastFm::WebService::fetchImageFinished(KIO::Job*)
>> - Took 0.15s
>> amarok: BEGIN: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint)
>> amarok: END__: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint) - Took 0.0053s
>> amarok:   [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 0
>>
>> --using xine engine
>>
>> amarok: BEGIN: void EngineController::play(const MetaBundle&, uint)
>> amarok:   [controller] Loading URL: lastfm://globaltags/Psytrance
>> amarok:   [controller] Connecting to protocol: lastfm
>> amarok: BEGIN: KURL LastFm::Controller::getNewProxy(QString)
>> amarok:     [LastFm] Initialising Web Service
>> amarok: BEGIN: bool LastFm::WebService::handshake(const QString&,
>> const QString&)
>> amarok:       [LastFm] result: session=94157025952bc5f306623afc0e4849ed
>> stream_url=http://87.117.229.83:80/last.mp3?Session=94157025952bc5f306623afc0e4849ed
>>
>> subscriber=0
>> framehack=0
>> base_url=ws.audioscrobbler.com
>> base_path=/radio
>> amarok:       [LastFm] Proxy server using port: 39224
>> amarok: END__: bool LastFm::WebService::handshake(const QString&,
>> const QString&) - Took 3.5s
>> amarok:     [LastFm] Changing station:lastfm://globaltags/Psytrance
>> amarok: END__: KURL LastFm::Controller::getNewProxy(QString) - Took 4.4s
>> amarok:   [controller] New URL is http://localhost:39224/lastfm.mp3
>> amarok: BEGIN: virtual bool XineEngine::load(const KURL&, bool)
>> amarok:     [xine-engine] Before xine_open() *****
>> amarok:     [xine-engine] After xine_open() *****
>> amarok: END__: virtual bool XineEngine::load(const KURL&, bool) - Took
>> 1.2s
>> amarok: BEGIN: virtual bool XineEngine::play(uint)
>> amarok: BEGIN: void EngineSubject::stateChangedNotify(Engine::State)
>> amarok:       [virtual void
>> Amarok::StatusBar::engineStateChanged(Engine::State, Engine::State)]
>> Line: 147
>> amarok: BEGIN: virtual void
>> ContextBrowser::engineStateChanged(Engine::State, Engine::State)
>> amarok: END__: virtual void
>> ContextBrowser::engineStateChanged(Engine::State, Engine::State) -
>> Took 0.0037s
>> amarok: END__: void EngineSubject::stateChangedNotify(Engine::State) -
>> Took 0.0087s
>> amarok: END__: virtual bool XineEngine::play(uint) - Took 0.0097s
>> amarok: BEGIN: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool)
>> amarok: BEGIN: virtual void ThreadWeaver::Thread::run()
>> amarok: END__: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool) - Took 0.31s
>> amarok: END__: void EngineController::play(const MetaBundle&, uint) -
>> Took 6s
>> amarok:   [LastFm] AMAROK_PROXY: host 87.117.229.83
>> amarok:   [LastFm] AMAROK_PROXY: 39224
>> amarok:   [LastFm] AMAROK_PROXY: running with port: 80 and host:
>> 87.117.229.83
>> amarok:   [LastFm] AMAROK_PROXY: "GET /lastfm.mp3 HTTP/1.0\r\n"
>> amarok:   [LastFm] AMAROK_PROXY: "GET
>> http://87.117.229.83/last.mp3?Session=94157025952bc5f306623afc0e4849ed
>> HTTP/1.1\r\nHost: 87.117.229.83:80\r\n\r\n"
>> amarok:   [LastFm] AMAROK_PROXY: GET /lastfm.mp3 HTTP/1.0
>> amarok:   [LastFm]  but sending GET
>> http://87.117.229.83/last.mp3?Session=94157025952bc5f306623afc0e4849ed
>> HTTP/1.1
>> amarok:   [LastFm] Host: 87.117.229.83:80
>> amarok:   [LastFm]
>> amarok:   [LastFm] AMAROK_PROXY: COPY from amarok -> serv
>> amarok:   [LastFm] AMAROK_PROXY: cp_to_empty_outward( income =>
>> #<TCPSocket:0xb7e1f764>, output => #<TCPSocket:0xb7e1f354>
>> amarok:   [LastFm] AMAROK_PROXY: Host: localhost:39224
>> amarok:   [LastFm] AMAROK_PROXY: data sent.
>> amarok:   [LastFm] AMAROK_PROXY: Found xine user agent version 1.1.2
>> amarok:   [LastFm] AMAROK_PROXY: User-Agent: xine/1.1.2
>> amarok:   [LastFm] AMAROK_PROXY: data sent.
>> amarok:   [LastFm] AMAROK_PROXY: Accept: */*
>> amarok:   [LastFm] AMAROK_PROXY: data sent.
>> amarok:   [LastFm] AMAROK_PROXY: Icy-MetaData: 1
>> amarok:   [LastFm] AMAROK_PROXY: data sent.
>> amarok:   [LastFm] AMAROK_PROXY:
>> amarok:   [LastFm] AMAROK_PROXY: data sent.
>> amarok:   [LastFm] AMAROK_PROXY: COPY from serv -> amarok
>> amarok: BEGIN: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint)
>> amarok:     [xine-engine] Metadata received.
>> amarok: BEGIN: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool)
>> amarok:       [Scrobbler] It's still the same track.
>> amarok: END__: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool) - Took 0.14s
>> amarok:     [LastFm] AMAROK_PROXY: cp_to_empty_inward( income =>
>> #<TCPSocket:0xb7e1f354>, output => #<TCPSocket:0xb7e1f764>
>> amarok:     [LastFm] AMAROK_PROXY: HTTP/1.0 200 OK
>> amarok:     [LastFm] AMAROK_PROXY: Server: last.fm Streaming Server
>> amarok:     [LastFm] AMAROK_PROXY: Content-type: audio/mpeg
>> amarok:     [LastFm] AMAROK_PROXY: Cache-control: no-cache
>> amarok:     [LastFm] AMAROK_PROXY: Pragma: no-cache
>> amarok:     [LastFm] AMAROK_PROXY: Date: Tue, 12 Dec 2006 01:20:01 GMT
>> amarok:     [LastFm] AMAROK_PROXY:
>> amarok:     [LastFm] AMAROK_PROXY: Before cp_all()
>> amarok:     [LastFm] AMAROK_PROXY: cp_all( income =>
>> #<TCPSocket:0xb7e1f354>, output => #<TCPSocket:0xb7e1f764>
>> amarok:     [LastFm] AMAROK_PROXY: Using buffer fill workaround.
>> amarok:     [LastFm] AMAROK_PROXY: SYNC
>> amarok: END__: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint) - Took 0.78s
>> amarok: END__: virtual void ThreadWeaver::Thread::run() - Took 1.5s
>> amarok: [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 1
>> amarok: BEGIN: void LastFm::WebService::metaDataFinished(int, bool)
>> amarok:   [LastFm] price=
>> shopname=
>> clickthrulink=
>> streaming=true
>> discovery=-1
>> station=Global Tag Radio: psytrance
>> artist=Alien Project
>> artist_url=http://www.last.fm/music/Alien+Project
>> track=Who Has The Marijuana (Quadra
>> track_url=http://www.last.fm/music/Alien+Project/_/Who+Has+The+Marijuana+%28Quadra
>>
>> album=Delicious
>> album_url=http://www.last.fm/music/Various+Artists/Delicious
>> albumcover_small=http://static.last.fm/depth/catalogue/noimage/cover_large.gif
>>
>> albumcover_medium=http://static.last.fm/depth/catalogue/noimage/cover_large.gif
>>
>> albumcover_large=http://static.last.fm/depth/catalogue/noimage/cover_med.gif
>>
>> trackduration=412
>> radiomode=1
>> recordtoprofile=1
>> amarok:
>> amarok: END__: void LastFm::WebService::metaDataFinished(int, bool) -
>> Took 0.0045s
>> amarok: BEGIN: virtual void ThreadWeaver::Thread::run()
>> amarok: BEGIN: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint)
>> amarok: END__: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint) - Took 0.0026s
>> amarok: END__: virtual void ThreadWeaver::Thread::run() - Took 0.085s
>> amarok: [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 0
>> amarok: [Scrobbler] Couldn't read similar artists response
>> amarok: BEGIN: void LastFm::WebService::fetchImageFinished(KIO::Job*)
>> amarok:   [Moodbar] Resetting moodbar: /Psytrance
>> amarok: BEGIN: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool)
>> amarok:     [Scrobbler] It's still the same track.
>> amarok: BEGIN: virtual void ThreadWeaver::Thread::run()
>> amarok: END__: void EngineSubject::newMetaDataNotify(const
>> MetaBundle&, bool) - Took 0.22s
>> amarok: END__: void LastFm::WebService::fetchImageFinished(KIO::Job*)
>> - Took 0.25s
>> amarok: BEGIN: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint)
>> amarok: END__: void CurrentTrackJob::showArtistsAlbums(const QString&,
>> uint, uint) - Took 0.31s
>> amarok: END__: virtual void ThreadWeaver::Thread::run() - Took 0.97s
>> amarok: [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 0
>> _______________________________________________
>> Amarok mailing list
>> Amarok at kde.org
>> https://mail.kde.org/mailman/listinfo/amarok
>>   
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Amarok mailing list
> Amarok at kde.org
> https://mail.kde.org/mailman/listinfo/amarok

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3323 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.kde.org/pipermail/amarok/attachments/20061216/2ef365e2/attachment.bin>


More information about the Amarok mailing list