<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Inside Last.FM: Bestimmten Titel direkt downloaden</title>
	<atom:link href="http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/</link>
	<description>Der xscheme-DevelopmentBlog</description>
	<lastBuildDate>Mon, 19 Jul 2010 15:20:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Von: xsc</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-2392</link>
		<dc:creator>xsc</dc:creator>
		<pubDate>Tue, 23 Mar 2010 16:56:29 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-2392</guid>
		<description>Also ja, das sieht für mich soweit richtig aus. Die Signatur wird erstellt, indem man alle Parameter, die man senden will (inklusive &quot;method&quot; und &quot;api_key&quot;) aufsteigend ordnet und Schlüssel und Wert ohne Leerzeichen aneinander hängt, dazu noch das API Secret. Dann, nicht vergessen, den MD5 Hash davon berechnen.

D.h. für den ersten Schritt, auth.getToken, ist die Signatur:

MD5(api_key[KEY]methodauth.getToken[SECRET])

Anschließend (nachdem der/das (?) Token vom User bestätigt wurde; &lt;a href=&#039;http://www.lastfm.de/api/desktopauth&#039; rel=&quot;nofollow&quot;&gt;Punkt 3 hier&lt;/a&gt; - das könnte ein Grund sein, warum dein Code-Ausschnitt nicht funktionieren würde... Wenn du das öffnen des Browsers umgehen willst, nimm auth.getMobileSession!) der Aufruf zu &lt;a href=&#039;http://www.lastfm.de/api/show?service=125&#039; rel=&quot;nofollow&quot;&gt;auth.getSession&lt;/a&gt; mit der Signatur

MD5(api_key[KEY]methodauth.getSessiontoken[TOKEN][SECRET])

Durch diesen Aufruf erhältst du Informationen zum User (Username, Abonnent?) und den Session-Key, den du speichern musst und ab sofort als Wert für den Parameter &quot;sk&quot; einsetzen kannst, z.B. bei &lt;a href=&#039;http://www.lastfm.de/api/show?service=317&#039; rel=&quot;nofollow&quot;&gt;album.getTags&lt;/a&gt;, was die folgende Signatur brauchen würde:

MD5(album[ALBUM]api_key[KEY]artist[ARTIST]methodalbum.getTagssk[SESSION][SECRET])

Man sieht hier, dass der &quot;album&quot;-Parameter vor &quot;api_key&quot; kommt, da die Parameterliste &lt;i&gt;komplett&lt;/i&gt; sortiert werden muss.

Ich hoffe, das stimmt und hilft.

Yannick</description>
		<content:encoded><![CDATA[<p>Also ja, das sieht für mich soweit richtig aus. Die Signatur wird erstellt, indem man alle Parameter, die man senden will (inklusive &#8220;method&#8221; und &#8220;api_key&#8221;) aufsteigend ordnet und Schlüssel und Wert ohne Leerzeichen aneinander hängt, dazu noch das API Secret. Dann, nicht vergessen, den MD5 Hash davon berechnen.</p>
<p>D.h. für den ersten Schritt, auth.getToken, ist die Signatur:</p>
<p>MD5(api_key[KEY]methodauth.getToken[SECRET])</p>
<p>Anschließend (nachdem der/das (?) Token vom User bestätigt wurde; <a href='http://www.lastfm.de/api/desktopauth' rel="nofollow">Punkt 3 hier</a> &#8211; das könnte ein Grund sein, warum dein Code-Ausschnitt nicht funktionieren würde&#8230; Wenn du das öffnen des Browsers umgehen willst, nimm auth.getMobileSession!) der Aufruf zu <a href='http://www.lastfm.de/api/show?service=125' rel="nofollow">auth.getSession</a> mit der Signatur</p>
<p>MD5(api_key[KEY]methodauth.getSessiontoken[TOKEN][SECRET])</p>
<p>Durch diesen Aufruf erhältst du Informationen zum User (Username, Abonnent?) und den Session-Key, den du speichern musst und ab sofort als Wert für den Parameter &#8220;sk&#8221; einsetzen kannst, z.B. bei <a href='http://www.lastfm.de/api/show?service=317' rel="nofollow">album.getTags</a>, was die folgende Signatur brauchen würde:</p>
<p>MD5(album[ALBUM]api_key[KEY]artist[ARTIST]methodalbum.getTagssk[SESSION][SECRET])</p>
<p>Man sieht hier, dass der &#8220;album&#8221;-Parameter vor &#8220;api_key&#8221; kommt, da die Parameterliste <i>komplett</i> sortiert werden muss.</p>
<p>Ich hoffe, das stimmt und hilft.</p>
<p>Yannick</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Michael</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-2391</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 23 Mar 2010 13:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-2391</guid>
		<description>Hallo Zusammen, 

als Fingerübung schreibe ich imom eine Java-Anwendung, der ein Benutzername entgegen nimmt und die Tracks aus der Playlisten downloadet.

Ich habe leider noch nicht verstanden, wie die Signatur und die Session erzeugt werden.

&amp;api_sig=[Signatur]&amp;sk=[Session]


API Beschreibung:
http://www.lastfm.de/api/desktopauth#6

Kann jemand in eigenen Worten die Zusammenstellung Idiotensicher erklären?  :)

Nach meinem Verständnis sieht die Signatur folgendermaßen aus:

StringBuffer strb = new StringBuffer();
strb.append(&quot;api_key&quot;);
strb.append(API_KEY);		
strb.append(&quot;methodauth.getSessiontoken&quot;);
strb.append(Authenticator.getToken(API_KEY));
strb.append(API_SEC);


Handelt es sich bei der Session um diese Methode? Falls ja, bin ich mit mit dem ersten Parameter nicht sicher!
Authenticator.getSession(Authenticator.getToken(API_KEY), API_KEY, API_SECRET);

Würde mich über eine Antwort freuen :)

Gruß,
Michael</description>
		<content:encoded><![CDATA[<p>Hallo Zusammen, </p>
<p>als Fingerübung schreibe ich imom eine Java-Anwendung, der ein Benutzername entgegen nimmt und die Tracks aus der Playlisten downloadet.</p>
<p>Ich habe leider noch nicht verstanden, wie die Signatur und die Session erzeugt werden.</p>
<p>&amp;api_sig=[Signatur]&amp;sk=[Session]</p>
<p>API Beschreibung:<br />
<a href="http://www.lastfm.de/api/desktopauth#6" rel="nofollow">http://www.lastfm.de/api/desktopauth#6</a></p>
<p>Kann jemand in eigenen Worten die Zusammenstellung Idiotensicher erklären?  <img src='http://dev.xscheme.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nach meinem Verständnis sieht die Signatur folgendermaßen aus:</p>
<p>StringBuffer strb = new StringBuffer();<br />
strb.append(&#8220;api_key&#8221;);<br />
strb.append(API_KEY);<br />
strb.append(&#8220;methodauth.getSessiontoken&#8221;);<br />
strb.append(Authenticator.getToken(API_KEY));<br />
strb.append(API_SEC);</p>
<p>Handelt es sich bei der Session um diese Methode? Falls ja, bin ich mit mit dem ersten Parameter nicht sicher!<br />
Authenticator.getSession(Authenticator.getToken(API_KEY), API_KEY, API_SECRET);</p>
<p>Würde mich über eine Antwort freuen <img src='http://dev.xscheme.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Gruß,<br />
Michael</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: xsc</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-1555</link>
		<dc:creator>xsc</dc:creator>
		<pubDate>Tue, 04 Aug 2009 22:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-1555</guid>
		<description>@Rearden:
Habe ich bereits mitbekommen und in meinen Programmen auch ausgebessert. Werde das hier gleich nochmal aktualisieren, von dem her: Danke für den Hinweis!

Yannick</description>
		<content:encoded><![CDATA[<p>@Rearden:<br />
Habe ich bereits mitbekommen und in meinen Programmen auch ausgebessert. Werde das hier gleich nochmal aktualisieren, von dem her: Danke für den Hinweis!</p>
<p>Yannick</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Rearden</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-1552</link>
		<dc:creator>Rearden</dc:creator>
		<pubDate>Tue, 04 Aug 2009 21:25:10 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-1552</guid>
		<description>Das mit dem Parameter streaming=true scheint seit neuestem nicht mehr zu funktionieren. Anscheinend benötigt man jetzt auch den &quot;api_sig&quot; Parameter, d.h. einen mit einem API-Key und Secret signierten Request. Jedenfalls macht Last.fm das jetzt so auf seiner eigenen Website, wenn der Flash-Player ein MP3 requested.</description>
		<content:encoded><![CDATA[<p>Das mit dem Parameter streaming=true scheint seit neuestem nicht mehr zu funktionieren. Anscheinend benötigt man jetzt auch den &#8220;api_sig&#8221; Parameter, d.h. einen mit einem API-Key und Secret signierten Request. Jedenfalls macht Last.fm das jetzt so auf seiner eigenen Website, wenn der Flash-Player ein MP3 requested.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Inside Last.FM: LastSharp und die eigene Playlist &#124; xscDevBlog - LastSharp &#38; Co.</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-900</link>
		<dc:creator>Inside Last.FM: LastSharp und die eigene Playlist &#124; xscDevBlog - LastSharp &#38; Co.</dc:creator>
		<pubDate>Tue, 21 Apr 2009 18:46:46 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-900</guid>
		<description>[...] Antwort siehe oben: &#8220;Deine neueste Playlist wird in dem Player auf deiner Profilseite erscheinen, wo die Titel von dir oder anderen Leuten, die dein Profil besuchen, einzeln gespielt oder angespielt werden können.&#8221; Man kann also als Nicht-Abonennt nicht gezielt die eigene Playlist anhören, sondern nur, wenn sie auf der eigenen Profilseite erscheint. Und wie macht das Widget das dann? So: Inside Last.FM: Bestimmten Titel direkt downloaden [...]</description>
		<content:encoded><![CDATA[<p>[...] Antwort siehe oben: &#8220;Deine neueste Playlist wird in dem Player auf deiner Profilseite erscheinen, wo die Titel von dir oder anderen Leuten, die dein Profil besuchen, einzeln gespielt oder angespielt werden können.&#8221; Man kann also als Nicht-Abonennt nicht gezielt die eigene Playlist anhören, sondern nur, wenn sie auf der eigenen Profilseite erscheint. Und wie macht das Widget das dann? So: Inside Last.FM: Bestimmten Titel direkt downloaden [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: xsc</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-783</link>
		<dc:creator>xsc</dc:creator>
		<pubDate>Sat, 21 Mar 2009 19:03:13 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-783</guid>
		<description>Richtig. Hier wird quasi das nachgemacht, was das Last.FM-Flash-Widget tut, um an die Lieder zu kommen, die es wiedergibt. Und da das Widget auch nur vollständig anhörbare Titel auch wirklich ganz wiedergibt, klappt das nur in diesem Fall.

Yannick</description>
		<content:encoded><![CDATA[<p>Richtig. Hier wird quasi das nachgemacht, was das Last.FM-Flash-Widget tut, um an die Lieder zu kommen, die es wiedergibt. Und da das Widget auch nur vollständig anhörbare Titel auch wirklich ganz wiedergibt, klappt das nur in diesem Fall.</p>
<p>Yannick</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Thomas</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-770</link>
		<dc:creator>Thomas</dc:creator>
		<pubDate>Thu, 19 Mar 2009 20:53:04 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-770</guid>
		<description>Mit der Methode kann man aber nur die Titel herunterladen, die über lastfm.de in voller Länge anhörbar sind, richtig?</description>
		<content:encoded><![CDATA[<p>Mit der Methode kann man aber nur die Titel herunterladen, die über lastfm.de in voller Länge anhörbar sind, richtig?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: xsc</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-763</link>
		<dc:creator>xsc</dc:creator>
		<pubDate>Thu, 19 Mar 2009 00:47:20 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-763</guid>
		<description>Habs gerade nochmals ausprobiert und es funktioniert. Irgendetwas machst du wohl falsch... Aber ohne nähere Informationen kann ich dir da nicht helfen. Die andere Frage ist dann wiederum, ob ich helfen will, angesichts der Diskussion, die über die Fragwürdigkeit dieser Methode im Gange war...

Yannick</description>
		<content:encoded><![CDATA[<p>Habs gerade nochmals ausprobiert und es funktioniert. Irgendetwas machst du wohl falsch&#8230; Aber ohne nähere Informationen kann ich dir da nicht helfen. Die andere Frage ist dann wiederum, ob ich helfen will, angesichts der Diskussion, die über die Fragwürdigkeit dieser Methode im Gange war&#8230;</p>
<p>Yannick</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Veit</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-760</link>
		<dc:creator>Veit</dc:creator>
		<pubDate>Wed, 18 Mar 2009 15:30:43 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-760</guid>
		<description>sieht aus als wäre das gar nicht mehr möglich. ich bekomm immer nur einen 500er fehler wenn ich die adresse der mp3 direkt eingebe.</description>
		<content:encoded><![CDATA[<p>sieht aus als wäre das gar nicht mehr möglich. ich bekomm immer nur einen 500er fehler wenn ich die adresse der mp3 direkt eingebe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: xsc</title>
		<link>http://dev.xscheme.de/2009/03/inside-lastfm-bestimmten-titel-direkt-downloaden/comment-page-1/#comment-698</link>
		<dc:creator>xsc</dc:creator>
		<pubDate>Wed, 11 Mar 2009 17:40:43 +0000</pubDate>
		<guid isPermaLink="false">http://dev.xscheme.de/?p=540#comment-698</guid>
		<description>Geht es dir jetzt ums Herunterladen oder ums Anhören? Falls letzteres: du kannst die Lieder auch im Browser abspielen, aber das weißt du wahrscheinlich... (http://www.last.fm/listen)

Um die Lieder abzuspielen, die du herunterlädtst, musst du links unten einen Haken bei &quot;Tracks nach dem Download abspielen&quot; und &quot;Automatisch mit dem Download fortfahren&quot; setzen. Dann einfach einen Download starten und es sollte gehen.

Was allerdings das vermehrte Auftreten der &quot;response=FAILED//error=1&quot;-Fehler bedeutet, kann ich schlicht und einfach nicht sagen. Ich blick&#039;s nicht...

Yannick</description>
		<content:encoded><![CDATA[<p>Geht es dir jetzt ums Herunterladen oder ums Anhören? Falls letzteres: du kannst die Lieder auch im Browser abspielen, aber das weißt du wahrscheinlich&#8230; (<a href="http://www.last.fm/listen" rel="nofollow">http://www.last.fm/listen</a>)</p>
<p>Um die Lieder abzuspielen, die du herunterlädtst, musst du links unten einen Haken bei &#8220;Tracks nach dem Download abspielen&#8221; und &#8220;Automatisch mit dem Download fortfahren&#8221; setzen. Dann einfach einen Download starten und es sollte gehen.</p>
<p>Was allerdings das vermehrte Auftreten der &#8220;response=FAILED//error=1&#8243;-Fehler bedeutet, kann ich schlicht und einfach nicht sagen. Ich blick&#8217;s nicht&#8230;</p>
<p>Yannick</p>
]]></content:encoded>
	</item>
</channel>
</rss>
