从您提供的Spotify My Music或Spotify播放列表下载歌曲

spotify-dl的Python项目详细描述


Spotify_dl

从任何Spotify播放列表或“我的音乐”下载歌曲 收藏。

告诉我更多!

我想找一个简单的方法把我图书馆里的歌曲拿出来,这样我就可以 下载并脱机使用(Spotify尚未在此处启动)。你不知道 来吗?).spotify_to_mp3 运行良好,但它依赖于grooveshark,不幸的是,grooveshark不是 更多。

所以我写了一个模仿那个库的脚本,但是 从grooveshark下载,它为您提供了一个youtube文件 然后可以插入的URL youtube-dl

我怎么才能让这东西跑起来?

先决条件:您需要python 3+

  1. 使用pipsudo pip3 install spotify_dl安装(如果 您的发行版本机提供了python 3)

  2. 创建Spotify应用程序,从 Spotify Developer Console。 然后这些密钥需要被分配为SPOTIPY_CLIENT_IDSPOTIPY_CLIENT_SECRETSPOTIPY_REDIRECT_URI环境 变量。

    您可以在Linux中设置环境变量,如下所示:

    export SPOTIPY_CLIENT_ID='your-spotify-client-id'
    export SPOTIPY_CLIENT_SECRET='your-spotify-client-secret'
    export SPOTIPY_REDIRECT_URI='your-app-redirect-url'
    

    windows用户,查看this question以获取有关如何 可以设置环境变量。

    注意重定向url可以是有效的url,只要确保它与 在开发人员控制台和环境中输入的内容 上面的变量。

  3. 创建youtube api密钥并从Google Developer Console获取密钥。 如前所述,将键设置为YOUTUBE_DEV_KEY环境变量 上面。

  4. 使用spotify_dl运行脚本。Spotify接受不同的 参数,有关详细信息,请运行spotify_dl -h

对于大多数用户 spotify_dl -l spotify_playlist_link -o download_directory应该可以 其中

  • spotify_playlist_link是指向Spotify播放列表的链接。你可以 从3点菜单中获取。
image

图像

如果跳过Spotify播放列表链接,则它将从 你的“我的音乐”收藏-download_directory就是位置 歌曲必须下载到的位置。如果你给一个.,它就会 下载到当前目录。

或者, spotify_dl -p playlist_id -u user_name -o download_directory将 也可以工作

  • playlist_id是需要播放歌曲的播放列表的ID 下载。如果跳过,它将从您的 “我的音乐”系列
  • user_name是创建播放列表的用户名。
  • download_directory是歌曲必须位于的位置 下载到。
  1. 首次运行需要身份验证;您需要单击 在提示进行身份验证的URL上。登录后,粘贴URL 回去吧。
  2. 要以MP3格式检索下载的歌曲,您需要安装ffmpeg。 如果希望跳过MP3转换,请传递-m--skip_mp3 作为运行脚本时的参数

如何设置默认值?

通过在以下位置创建文件,可以为每个用户设置默认值 ~/.spotify_dl_settings。为每个参数创建一个值为的键 您需要的是默认值。示例:

{"output":"/home/foo/spotify-dl-output","verbose":"true","skip_mp3":"t"}

学分

问题、反馈、联系方式

请随时提出github问题下的任何错误/问题。拉动请求 也非常受欢迎。你可以在twitter上找到我 [@sathyabhat](https://twitter.com/sathyabhat)或发送电子邮件 sathya@sathyasays.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?