Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python(Windows)中获取Spotify当前播放的歌曲?_Python_Python 3.x_Arduino_Spotify - Fatal编程技术网

如何在Python(Windows)中获取Spotify当前播放的歌曲?

如何在Python(Windows)中获取Spotify当前播放的歌曲?,python,python-3.x,arduino,spotify,Python,Python 3.x,Arduino,Spotify,我想在16x2的LCD上显示Spotify中当前播放的歌曲。 我正在考虑将LCD与我的Arduino连接起来,然后制作一个Python脚本,将Spotify当前播放的歌曲发送给Arduino 为了切中要害,我正在寻找一种方法来获取Spotify当前在Python中播放的歌曲。我正在使用Windows8。我找到了一些类似dbus的方法,但它们要么是针对Linux,要么是针对Mac 提前谢谢!对不起,英语语法不好。有不止一个pytify吗? 这对我一直有效,直到今天: Spotify已经更新,现在

我想在16x2的LCD上显示Spotify中当前播放的歌曲。 我正在考虑将LCD与我的Arduino连接起来,然后制作一个Python脚本,将Spotify当前播放的歌曲发送给Arduino

为了切中要害,我正在寻找一种方法来获取Spotify当前在Python中播放的歌曲。我正在使用Windows8。我找到了一些类似dbus的方法,但它们要么是针对Linux,要么是针对Mac


提前谢谢!对不起,英语语法不好。

有不止一个pytify吗? 这对我一直有效,直到今天:

Spotify已经更新,现在歌曲不再显示在windows标题中

他们将恢复该功能:

是否有多个pytify? 这对我一直有效,直到今天:

Spotify已经更新,现在歌曲不再显示在windows标题中

他们将恢复该功能:

最简单的方法可能是将当前播放的曲目从Spotify客户端搜索到last.fm帐户,然后使用python从中获取

Last.fm允许您通过api获取scrobbled曲目,如果正在播放歌曲,该api将提供nowplaying=true属性。它还为外部显示提供了一些其他有用的东西,如指向专辑艺术的链接和歌曲的last.fm页面

下面是一个快速示例,它将用户名和api键作为cmd行参数,并使用请求库获取当前为该用户播放的内容

from time import sleep
import requests
import json
from pprint import pprint
import sys    

def get_playing():
    base_url = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user='
    user = sys.argv[1]
    key = sys.argv[2]
    r = requests.get(base_url+user+'&api_key='+key+'&format=json')
    data = json.loads(r.text)
    latest_track = data['recenttracks']['track'][0]
    try:
        if latest_track['@attr']['nowplaying'] == 'true':
            artist = latest_track['artist']['#text']
            song = latest_track['name']
            album = latest_track['album']['#text']
            print "\nNow Playing: {0} - {1}, from the album {2}.\n".format(artist, song, album)
    except KeyError:
        print '\nNothing playing...\n'    

def main():
    if len(sys.argv)<3:
        print "\nError: Please provide a username and api key in the format of: 'scrobble.py username api_key\n"
    else:
        get_playing()    

if __name__ == '__main__':
    main()

但是,在快速测试中,暂停或退出Spotify客户端后,似乎需要一分钟左右的时间才能意识到曲目不再播放。

最简单的方法可能是从Spotify客户端将当前播放的曲目搜索到last.fm帐户,然后使用python从那里获取曲目

Last.fm允许您通过api获取scrobbled曲目,如果正在播放歌曲,该api将提供nowplaying=true属性。它还为外部显示提供了一些其他有用的东西,如指向专辑艺术的链接和歌曲的last.fm页面

下面是一个快速示例,它将用户名和api键作为cmd行参数,并使用请求库获取当前为该用户播放的内容

from time import sleep
import requests
import json
from pprint import pprint
import sys    

def get_playing():
    base_url = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user='
    user = sys.argv[1]
    key = sys.argv[2]
    r = requests.get(base_url+user+'&api_key='+key+'&format=json')
    data = json.loads(r.text)
    latest_track = data['recenttracks']['track'][0]
    try:
        if latest_track['@attr']['nowplaying'] == 'true':
            artist = latest_track['artist']['#text']
            song = latest_track['name']
            album = latest_track['album']['#text']
            print "\nNow Playing: {0} - {1}, from the album {2}.\n".format(artist, song, album)
    except KeyError:
        print '\nNothing playing...\n'    

def main():
    if len(sys.argv)<3:
        print "\nError: Please provide a username and api key in the format of: 'scrobble.py username api_key\n"
    else:
        get_playing()    

if __name__ == '__main__':
    main()

在快速测试中,暂停或退出Spotify客户端后,似乎需要一分钟左右的时间才能意识到曲目不再播放。

我遇到了同样的问题,因此我编写了一个库来解决此问题。可以在github上找到该库:。请记住,这项工作仍在进行中

只需复制文件并将其放在Python/Lib目录中

import spotilib
spotilib.artist() #returns the artist of the current playing song
spotilib.song() #returns the song title of the current playing song
spotilib.artist只返回第一个艺术家。我开始使用另一个库spotimeta.py来解决这个问题。然而,这并不是100%起作用

import spotimeta
spotimeta.artists() #returns a list of all the collaborating artists of the track
如果发生错误,spotimeta.artists将仅返回使用spotilib.artist找到的第一个艺术家


希望这将帮助你,如果仍然需要

我遇到了同样的问题,所以我写了一个库来解决这个问题。可以在github上找到该库:。请记住,这项工作仍在进行中

只需复制文件并将其放在Python/Lib目录中

import spotilib
spotilib.artist() #returns the artist of the current playing song
spotilib.song() #returns the song title of the current playing song
spotilib.artist只返回第一个艺术家。我开始使用另一个库spotimeta.py来解决这个问题。然而,这并不是100%起作用

import spotimeta
spotimeta.artists() #returns a list of all the collaborating artists of the track
如果发生错误,spotimeta.artists将仅返回使用spotilib.artist找到的第一个艺术家


希望这将帮助你,如果仍然需要

我没有用过,但你可能会觉得有用。谢谢你的回复。不幸的是,它只适用于Mac和Linux。我没有使用过它,但您可能会发现它很有用。谢谢您的回复。不幸的是,它只适用于Mac和Linux。谢谢,你仍然在努力回答这个问题,即使它已经超过1年了。我很快就会看的。如果我能帮助您开发模块,请告诉我。虽然我不能百分之百地帮助你,但我至少会尝试一下。恩,我知道,这真是太棒了,哈哈。Ik ga zelf nu beginnen和het tweede jaar电气工程学士。Welk jaar civiel doe jij?/你也在德尔夫特大学学习,太棒了。我将开始我的第二年电气工程学士学位。“你在土木工程哪一年?”凯文总是很高兴见到一个同学!目前,我正在开始土木工程的第四个学年,仍然是batchelor tho.|Hoe zou ik与kunnen komen会面?与kevinvandertoorn dot nl会面@i.p.v.-at-en-punt i.p.v.-dot-。我不知道怎么回事,哈哈。机械关塔姆酒店是最后一家Pwhoops。。。het moet email-at-kevinvandertoorn-dot-nl zijn,抱歉。谢谢,你仍然在努力回答这个问题,即使它已经超过1岁了。我很快就会看的。如果我能帮助您开发模块,请告诉我。虽然
如果我能帮助你,我不是百分之百的,但我至少会尝试一下。恩,我知道,这太棒了,哈哈。Ik ga zelf nu beginnen和het tweede jaar电气工程学士。Welk jaar civiel doe jij?/你也在德尔夫特大学学习,太棒了。我将开始我的第二年电气工程学士学位。“你在土木工程哪一年?”凯文总是很高兴见到一个同学!目前,我正在开始土木工程的第四个学年,仍然是batchelor tho.|Hoe zou ik与kunnen komen会面?与kevinvandertoorn dot nl会面@i.p.v.-at-en-punt i.p.v.-dot-。我不知道怎么回事,哈哈。机械关塔姆酒店是最后一家Pwhoops。。。het moet email-at-kevinvandertoorn-dot-nl zijn,抱歉。对于任何对此不加评论的人:这有点粗鲁,违反了SO准则的精神。这是一个很好的答案,但可以改进它解释了好处:这不仅仅适用于Spotify,并且不受Spotify客户端更改的破坏,除非有一天他们删除了Scrobble支持。另外,对大多数人来说,解释或链接什么是Scrobble。干得好。无论是谁在没有评论的情况下否决了这一点:这有点粗鲁,违反了SO准则的精神。这是一个很好的答案,但可以加以改进。它解释了好处:这不仅适用于Spotify,而且不会因Spotify客户端的更改而受到破坏,除非有一天他们删除了Scrobble支持。另外,对大多数人来说,解释或链接什么是Scrobble。做得好。