一个基于Flask的后端,可以从Spotify搜索和下载音乐

spotify-flask-downloader的Python项目详细描述


spotify-flask-downloader

一个基于烧瓶的后端,用于从Spotify搜索和下载音乐。

这是一个基于烧瓶的后端,可以根据你的网络请求,通过在Spotify中搜索从YouTube下载音乐。在

安装

pip3 install spotify-flask-downloader

依赖关系

ProjectMaintainer
flaskpallets
flask-corscorydolphin
youtube-dlytdl-org
youtube-search-pythonalexmercerind

像模块一样?在

考虑在存储库中添加星号。请随意使用。在

如果你找到了一个问题,请随时公开。在

使用

启动服务器

执行这个脚本,让它在后台运行,就像你在玩这个模块一样。在

^{pr2}$

您可以使用requestsurllib之类的东西来访问这个flask服务器。在

搜索音乐

importrequestsresponse=requests.get("http://localhost:5000/search",params={"keyword":"Faded Alan Walker",#Search Query"mode":"track",#Default is "album", Supports "album" & "track""offset":0,#Default is 0"limit":1#Default is 50})print(response.json())
  • 回应
{"tracks":[{"track_id":"7gHs73wELdeycvS48JfIos","track_name":"Faded","track_artists":["Alan Walker"],"track_number":1,"track_duration":212626,"album_id":"5HMjpBO0v78ayq5lreAyDd","album_name":"Faded","year":"2015","album_artists":["Alan Walker"],"album_art_640":"https://i.scdn.co/image/ab67616d00001e02c4d00cac55ae1b4598c9bc90","album_art_300":"https://i.scdn.co/image/ab67616d0000b273c4d00cac55ae1b4598c9bc90","album_art_64":"https://i.scdn.co/image/ab67616d00004851c4d00cac55ae1b4598c9bc90","album_length":4,"album_type":"single"}]}

将曲目保存到设备

importrequestsresponse=requests.get("http://localhost:5000/savetrack",params={"track_id":"7gHs73wELdeycvS48JfIos"})print(response.json())
  • 回应
Downloading...
它将曲目保存到%userprofile%\.ReactMusic\Library

获取“保存曲目到设备”状态

importrequestsresponse=requests.get("http://localhost:5000/savetrackstatus")print(response.json())
  • 回应

  • True

    • 如果没有下载曲目,您可以下载曲目。在
  • False

    • 如果正在下载曲目,您必须等待,直到响应变为真

获取曲目下载链接

importrequestsresponse=requests.get("http://localhost:5000/trackdownload",params={"track_id":"7gHs73wELdeycvS48JfIos"#Alternatively you can provide "track_name" in place of "track_id"})print(response.json())
  • 回应
{"download_url":"https://r8---sn-gwpa-5bgs.googlevideo.com/videoplayback?expire=1594409257&ei=yWwIX_3rNJOWvQSFwI5A&ip=2409%3A4053%3A2196%3Ad6fa%3Ac8bf%3Ab2d8%3A81bb%3Aad05&id=o-AE3zCFHWH5aAUBwVqKVBijX3Vjd9xf4LSZ5uyIa8l2qY&itag=249&source=youtube&requiressl=yes&mh=Hp&mm=31%2C29&mn=sn-gwpa-5bgs%2Csn-gwpa-qxa6&ms=au%2Crdu&mv=m&mvi=8&pl=36&initcwndbps=175000&vprv=1&mime=audio%2Fwebm&gir=yes&clen=1360728&dur=212.501&lmt=1576159977750934&mt=1594387597&fvip=8&keepalive=yes&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgP_4WHdnJO0h1wde12DLTcrfAQ8ShLLIezFkfO0AjRdoCIBqTZqhOP8kp7amBJObCMzKNJ_vzXZdvJcnY8j4PTAm0&sig=AOq0QJ8wRgIhAJe-DBmBKmfBx8dJcoKyp_WCeXg3Q3WKfxAvw4ztUwbVAiEApLFfh9DK9rRkkSRDSqPhXgUXdtStDUZOok2gxzEHhTY=&ratebypass=yes"}

获取曲目信息

importrequestsresponse=requests.get("http://localhost:5000/trackinfo",params={"track_id":"7gHs73wELdeycvS48JfIos",})print(response.json())
  • 回应
{"track_id":"7gHs73wELdeycvS48JfIos","track_name":"Faded","track_artists":["Alan Walker"],"track_number":1,"track_duration":212626,"album_art_640":"https://i.scdn.co/image/ab67616d00001e02c4d00cac55ae1b4598c9bc90","album_art_300":"https://i.scdn.co/image/ab67616d0000b273c4d00cac55ae1b4598c9bc90","album_art_64":"https://i.scdn.co/image/ab67616d00004851c4d00cac55ae1b4598c9bc90","album_id":"5HMjpBO0v78ayq5lreAyDd","album_name":"Faded","year":"2015","album_artists":["Alan Walker"],"album_length":4,"album_type":"single"}

获取专辑曲目

importrequestsresponse=requests.get("http://localhost:5000/albuminfo",params={"album_id":"5HMjpBO0v78ayq5lreAyDd",})print(response.json())
  • 回应
{"tracks":[{"track_id":"7gHs73wELdeycvS48JfIos","track_name":"Faded","track_artists":["Alan Walker"],"track_number":1,"track_duration":212626},{"track_id":"0HmONWWIU1FXkwWLDpqrjl","track_name":"Faded - Instrumental","track_artists":["Alan Walker"],"track_number":2,"track_duration":214013},{"track_id":"34F4GJFUzPvPJmGrTpyqlZ","track_name":"Faded (Restrung)","track_artists":["Alan Walker"],"track_number":3,"track_duration":217053},{"track_id":"0RLjnX1vYWvtdThB8LABwo","track_name":"Faded - Piano Version","track_artists":["Alan Walker"],"track_number":4,"track_duration":215080}]}

在YouTube上搜索

importrequestsresponse=requests.get("http://localhost:5000/searchyoutube",params={"keyword":"Faded Alan Walker",#Search Query"mode":"json",#Default is "json", Supports "json", "list" & "dict""offset":1,#Default is 1"max_results":1#Default is 1})print(response.json())
  • 回应
{"search_result":[{"index":0,"id":"60ItHLz5WEA","link":"https://www.youtube.com/watch?v=60ItHLz5WEA","title":"Alan Walker - Faded","channel":"Alan Walker","duration":"3:33","views":2806875809,"thumbnails":["https://img.youtube.com/vi/60ItHLz5WEA/default.jpg","https://img.youtube.com/vi/60ItHLz5WEA/hqdefault.jpg","https://img.youtube.com/vi/60ItHLz5WEA/mqdefault.jpg","https://img.youtube.com/vi/60ItHLz5WEA/sddefault.jpg","https://img.youtube.com/vi/60ItHLz5WEA/maxresdefault.jpg"]}]}

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

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?