Giter Site home page Giter Site logo

cloudmusic's Introduction

  • 🫐   I’m currently working on working
  • 🍓   I’m currently learning learning
  • 🧀   I’m looking to collaborate on collaboration
  • 🍔   I’m looking for help with help
  • 🍫   How to reach me: reach

cloudmusic's People

Contributors

p697 avatar submergence2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cloudmusic's Issues

search 功能无法使用

<ipython-input-6-0adcbb9dc1be> in <module>()
----> 1 cloudmusic.search("白日", 100)

4 frames
/usr/local/lib/python3.6/dist-packages/cloudmusic/cloudmusic.py in search(para, number)
     19 def search(para, number=5):
     20     with sessions.Session() as session:
---> 21         return session.search(para, number)
     22 
     23 

/usr/local/lib/python3.6/dist-packages/cloudmusic/sessions.py in search(self, content, number)
     87             "number" : str(number)
     88         }
---> 89         ids = self.api.search(para)
     90 
     91         musicList = self.request("song", ids)

/usr/local/lib/python3.6/dist-packages/cloudmusic/api.py in search(self, para)
     27         url = "https://music.163.com/weapi/cloudsearch/get/web"
     28         param = '{"hlpretag":"<span class=\\"s-fc7\\">","hlposttag":"</span>","s":"'+ para["string"] +'","type":"1","offset":"0","total":"true","limit":"'+ para["number"] +'","csrf_token":""}'
---> 29         return self.send(url, param)
     30 
     31 

/usr/local/lib/python3.6/dist-packages/cloudmusic/api.py in send(self, url, param)
     16         return query.post(url,
     17                         self.headers,
---> 18                         encrypt.encrypted_request(param))
     19 
     20     def get_song_url(self, para):

/usr/local/lib/python3.6/dist-packages/cloudmusic/query.py in post(url, headers, data)
     19         if "cloudsearch" in url:
     20             ids = []
---> 21             for li in json.loads(res.text)['result']['songs']:
     22                 ids.append(li["id"])
     23             return ids```

Keyerror: 'songs'

I ran the code demo and reported this error:
import cloudmusic music = cloudmusic.getMusic(1347630432)

`Traceback (most recent call last):
File "", line 1, in
playlist = cloudmusic.getPlaylist(310729011)

File "E:\Anaconda\envs\py36\lib\site-packages\cloudmusic\cloudmusic.py", line 11, in getPlaylist
return session.request("playlist", para)

File "E:\Anaconda\envs\py36\lib\site-packages\cloudmusic\sessions.py", line 50, in request
musicList = self.request("song", ids)

File "E:\Anaconda\envs\py36\lib\site-packages\cloudmusic\sessions.py", line 44, in request
return musicObj.createObj(ids, self.level)

File "E:\Anaconda\envs\py36\lib\site-packages\cloudmusic\musicObj.py", line 12, in createObj
musicInfo = api.get_song_detail(dict(ID = ids))['songs']`

music.download卡住

在使用music.download时卡住,可以提供无损音质歌曲链接吗?

歌曲名称太长会报错

有时候会出现
FileNotFoundError: [Errno 2] No such file or directory:
或者
OSError: [Errno 22] Invalid argument:
这样的报错,似乎时歌曲文件名太长导致的,请问有什么好的解决方法吗?

特殊字符进行的修正和macOS路径错误的修正

download.py

music.name = music.name.replace("/", "&")
if not artist is None:
	artist = artist.replace("/", "&")
name = music.name + " - " + artist + "." + music.type

if not dirs:

	if sys.platform == "darwin":
		path1 = "cloudmusic/"
		path2 = "/cloudmusic"
		path3 = "/"
	else :
		path1 = "cloudmusic\\"
		path2 = "\\cloudmusic"
		path3 = "\\"

	dirs = path1 + name
	defalut_dirs = str(os.getcwd()) + path2
	isExist = os.path.exists(defalut_dirs)
	if not isExist:
		os.makedirs(defalut_dirs)
else :
	dirs += path3 + name

如果歌曲名中有特殊字符无法下载

例如id1363303397
8.32 - *Luna,ゆある
网易云下载时会进行非法字符检查 并将非法字符有半角改为全角
需要修改接口musicObj对名字进行非法字符的检测和替换

经常性TypeError: 'Music' object is not iterable报错

session.py

            elif clas == "playlist" :
            playlist = self.api.get_playlist(dict(ID = ids[0], method = "linux"))["playlist"]["tracks"]
            ids = [ml["id"] for ml in playlist]
            musicList = self.request("song", ids)
            musicListc = []
            for ID in ids:
                for music in musicList:                    #<--------- Here
                    if music.id == str(ID):
                        musicListc.append(music)
                        musicList.remove(music)
                        continue
            return musicListc

经常会报错

代码如下:

import cloudmusic
playlist = cloudmusic.getPlaylist(7847348054)

错误信息如下

C:/Users/if-OF/AppData/Local/Microsoft/WindowsApps/python3.11.exe "d:/Visual Code/netease_download/test.py"
Traceback (most recent call last):
  File "d:\Visual Code\netease_download\test.py", line 2, in <module>
    playlist = cloudmusic.getPlaylist(7847348054)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\if-OF\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\cloudmusic\cloudmusic.py", line 11, in getPlaylist
    return session.request("playlist", para)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\if-OF\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\cloudmusic\sessions.py", line 53, in request
    for music in musicList:
TypeError: 'Music' object is not iterable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.