0
点赞
收藏
分享

微信扫一扫

一个简易的在线音乐播放器

骨灰级搬砖工 2022-04-18 阅读 151
python

音乐目前只有日韩和欧美的,中文音乐暂无。

输入歌手或者乐队名称,之后播放器每次切歌曲都会随机选择曲风类似的歌曲。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#author:shadow110cs
#简易在线音乐
import requests
import json
import os
import random

stid = []
def get_music():
    try:
        global stid
        hdr = {
            "cookie": "_jango_s=SHpnQ2lZUUw3L0tOM2dLS29CZ0VmbUlUVW44UnF4eGlJQUp1a0pzUmNaVW81RkNRcmkwUHQrVFhuZW1MRkpTWkxRN3JBV0FEVmU1RFo5L0cwQWtoQlJsay81Z1RNQ1YvOUo1bXN5SDRNaUpEUjZyNzNMWjFBamhjMlZTZnVXUFhzU2tEMklpNThPWWdiKy81a0VNUkJyMmJVWGgrRzBVTXBvU216L1pTWXFKUjI4WHJNK1ROSkRFYjl4ZUJBTUhTLS0yYzBWdTg5eTRRdHVxWTM0RGdEelJ3PT0%3D--a011693418777eb1c4151ec33b632839943a9e21",
            "upgrade-insecure-requests": "1",
            "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
        }

        sid = random.choice(stid)
        if sid != "":
            url = "https://www.jango.com/streams/info?&sid=496fad460d33311530efe598e9f88777&stid="+str(sid)+"&ver=304"
        else:
            url = "https://www.jango.com/streams/info?&sid=496fad460d33311530efe598e9f88777"                
        res = requests.get(url,headers=hdr).json()
        if len(stid) < 20:
            stid.append(res['similar_stations'][0]['id'])
        print("歌手:"+res['artist'])
        print("歌曲名:"+res['song'])
        print("Ctrl+C更换歌曲")
        link = "https:"+res['url']
        os.system("ffplay -noinfbuf -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5 -loglevel -8  -v -8 -nodisp -vn -autoexit "+link)

            

    except KeyboardInterrupt:
        pass
          
    

def get_stid(artist):
    global stid
    temp = ""
    try:
        temp = "+".join(str(artist).split(" "))
    except:
        temp = artist
    hdr = {
        "cookie": "_jango_s=SHpnQ2lZUUw3L0tOM2dLS29CZ0VmbUlUVW44UnF4eGlJQUp1a0pzUmNaVW81RkNRcmkwUHQrVFhuZW1MRkpTWkxRN3JBV0FEVmU1RFo5L0cwQWtoQlJsay81Z1RNQ1YvOUo1bXN5SDRNaUpEUjZyNzNMWjFBamhjMlZTZnVXUFhzU2tEMklpNThPWWdiKy81a0VNUkJyMmJVWGgrRzBVTXBvU216L1pTWXFKUjI4WHJNK1ROSkRFYjl4ZUJBTUhTLS0yYzBWdTg5eTRRdHVxWTM0RGdEelJ3PT0%3D--a011693418777eb1c4151ec33b632839943a9e21",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
    }        
    url = "https://www.jango.com/music/"+str(temp)
    res = requests.get(url,headers=hdr)
    stid.append(res.text.split("\"station_id\":\"")[1].split("\"")[0])


def uniq_stid():
    global stid
    temp = []
    for x in stid:
        if x not in temp:
            temp.append(x)
    stid = temp
    

if __name__ == "__main__":
    os.system('mode con cols=40 lines=4')
    os.system('title 在线音乐')    
    artist = input("输入歌手名称:")
    if artist != "":
        get_stid(artist)

    temp = (os.popen("ffplay -version").read())
    if str(temp).startswith("ffplay version"):
        while True:
            uniq_stid()
            get_music()
    else:
        print("本音乐播放器需要ffplay程序作为解码器")
        print("下载地址:https://www.gyan.dev/ffmpeg/builds/")
        os.system("pause")
        os.system("start https://www.gyan.dev/ffmpeg/builds/")



举报

相关推荐

0 条评论