helix engine last.fm streaming broken?

Paul Cifarelli paul at cifarelli.net
Fri Dec 15 11:12:36 UTC 2006


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
>   

-------------- 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/20061215/b01df8a5/attachment.bin>


More information about the Amarok mailing list