【问题标题】:Spotify: Does anyone know any command prompt commands for the Windows 10 Spotify desktop app?Spotify:有人知道 Windows 10 Spotify 桌面应用程序的任何命令提示符命令吗?
【发布时间】:2021-01-17 14:22:50
【问题描述】:

我正在编写一个 python 脚本来通过命令提示符控制 Spotify,但我知道的唯一命令是:

spotify --uri=[xxxx:xxxxxxxxxxxxxxxxxxxx]

这会将 Spotify 打开到曲目、专辑或艺术家。我尝试了许多其他随机命令,试图找到一些可行的命令,但没有成功。

【问题讨论】:

  • 为什么是命令行?你可以简单地使用spotipy
  • 访问当前播放等用户信息或使用 spotipy 开始用户播放需要浏览器身份验证和重定向。我希望能够避免这种情况,但这是我最后的手段。

标签: python windows command command-prompt spotify


【解决方案1】:

我不知道你是否可以通过cli做到,但你可以模拟按键并找到进程和窗口标题。

import win32api, win32con, win32gui, win32process, psutil, time

class Helper():
  play_pause = 0xB3
  next_track = 0xB0
  previous_track = 0xB1
  
  def __init__(self):
      self.hwnd = 0

  def winEnumHandler(self, hwnd, ctx ):
      process_name = psutil.Process(win32process.GetWindowThreadProcessId(hwnd)[-1]).name()
      window_name = win32gui.GetWindowText(hwnd)
      if win32gui.IsWindowVisible(hwnd) and process_name == "Spotify.exe" and window_name != "":
          self.hwnd = hwnd

  def sendKey(self, key):
      win32api.keybd_event(key, 0, 0, 0)
      win32api.keybd_event(key, 0, win32con.KEYEVENTF_KEYUP, 0)

  def getInfo(self):
      win32gui.EnumWindows(self.winEnumHandler, None)
      return win32gui.GetWindowText(self.hwnd)

hp = Helper()
print(hp.getInfo())

hp.sendKey(Helper.next_track)
time.sleep(1)
print(hp.getInfo())

hp.sendKey(Helper.play_pause)
time.sleep(1)
print(hp.getInfo())

你可以通过标题判断播放状态(包含-Spotify),你应该检查进程是否还活着/hwnd != 0。

我找到了密码here

【讨论】:

  • 我也很好奇在窗口上发送键码和收集窗口信息是多么容易。它对您有用/适合您吗?
猜你喜欢
  • 1970-01-01
  • 2019-01-22
  • 2021-12-26
  • 2020-07-13
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
相关资源
最近更新 更多