0

現時点では、このコードを使用して、PHP を使用して特定の Spotify プレイリストの情報を取得します (プレイリストの「最新」タイトルに関する情報を取得します)。

$retu = getsrc("https://embed.spotify.com/?uri=spotify:user:1121975814:playlist:20uXqHNuHw7kR2KWYfQYRb");
$expl = explode('<li class="track-',$retu);

$artist = get_string_between($expl[count($expl)-1],'style="">','</li>');
if(empty($artist)) die($retu);
$name = get_string_between($expl[count($expl)-1],'. ','"');
$id = get_string_between($expl[count($expl)-1],'title ',' ');
echo "$name ($artist) - $id<br>";

$src2 = getsrc("http://open.spotify.com/track/$id");
$cover = get_string_between($src2,'<img id="cover-art" src="','"');

function get_string_between($string, $start, $end)
{
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}

function getsrc($url)
{
    $ch = curl_init();
    $cookies = tmpfile();
    $user_agent="Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    $retu = curl_exec($ch);

    curl_close($ch);
    return $retu;
}

問題は次のものです。

  • 遅い
  • プレイリスト情報の更新がほとんどないか、更新に古い情報が含まれている場合

プレイリスト トラックを取得するためのより良い方法はありますか? そのために使用できるAPIはありますか?

前もって感謝します

4

1 に答える 1

3

これは役立つはずです。libspotify への php ラッパー。

https://github.com/vilhelmk/libspotify-php

于 2012-06-20T21:18:53.043 に答える