Code Monkey home page Code Monkey logo

netease-cloud-music-dl's Issues

AttributeError: parallel

Installed /usr/lib/python3.4/site-packages/netease_cloud_music_dl-0.2.0-py3.4.egg
Processing dependencies for netease-cloud-music-dl==0.2.0
Searching for Pillow>=4.3.0
Reading http://mirrors.tencentyun.com/pypi/simple/Pillow/
Downloading http://mirrors.tencentyun.com/pypi/packages/81/1a/6b2971adc1bca55b9a53ed1efa372acff7e8b9913982a396f3fa046efaf8/Pillow-6.0.0.tar.gz#md5=9da5d2db0d7604ba553ece1ab7ca53a3
Best match: Pillow 6.0.0
Processing Pillow-6.0.0.tar.gz
Writing /tmp/easy_install-dqt3r9m7/Pillow-6.0.0/setup.cfg
Running Pillow-6.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dqt3r9m7/Pillow-6.0.0/egg-dist-tmp-l45s5_zi
Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/setuptools/sandbox.py", line 154, in save_modules
    yield saved
  File "/usr/lib/python3.4/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/usr/lib/python3.4/site-packages/setuptools/sandbox.py", line 250, in run_setup
    _execfile(setup_script, ns)
  File "/usr/lib/python3.4/site-packages/setuptools/sandbox.py", line 45, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-dqt3r9m7/Pillow-6.0.0/setup.py", line 792, in <module>
  File "/usr/lib/python3.4/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib64/python3.4/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib64/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.4/site-packages/setuptools/command/bdist_egg.py", line 163, in run
    self.run_command("egg_info")
  File "/usr/lib64/python3.4/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib64/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 296, in run
    self.find_sources()
  File "/usr/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 303, in find_sources
    mm.run()
  File "/usr/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 534, in run
    self.add_defaults()
  File "/usr/lib/python3.4/site-packages/setuptools/command/egg_info.py", line 570, in add_defaults
    sdist.add_defaults(self)
  File "/usr/lib/python3.4/site-packages/setuptools/command/py36compat.py", line 36, in add_defaults
    self._add_defaults_ext()
  File "/usr/lib/python3.4/site-packages/setuptools/command/py36compat.py", line 119, in _add_defaults_ext
    build_ext = self.get_finalized_command('build_ext')
  File "/usr/lib64/python3.4/distutils/cmd.py", line 299, in get_finalized_command
    cmd_obj.ensure_finalized()
  File "/usr/lib64/python3.4/distutils/cmd.py", line 107, in ensure_finalized
    self.finalize_options()
  File "/tmp/easy_install-dqt3r9m7/Pillow-6.0.0/setup.py", line 268, in finalize_options
  File "/usr/lib64/python3.4/distutils/cmd.py", line 103, in __getattr__
    raise AttributeError(attr)
AttributeError: parallel

hMusic/mMusic/lMusic,随机选择?

我并没有看明白您的程序,

下述的下载让我感到奇怪,
第一,有hMusic,为何没有下载320kpbs的版本?
第二,没有128kpbs的版本,为何我下载下来的是128kpbs(显示)?
(下述来自于摘抄:http://music.163.com/api/playlist/detail?id=152261)

{"name":"Tristan - Original","id":19558027,"position":18,"alias":[],"status":0,"fee":8,"copyrightId":655010,"disc":"1","no":18,"artists":[{"name":"Two Steps From Hell","id":102714,"picId":0,"img1v1Id":0,"briefDesc":"","picUrl":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","img1v1Url":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","albumSize":0,"alias":[],"trans":"","musicSize":0,"topicPerson":0}],"album":{"name":"Invincible","id":1800915,"type":"专辑","size":22,"picId":6658642418470358,"blurPicUrl":"http://p1.music.126.net/vHXzXIE1G7FRgA89e3CuAg==/6658642418470358.jpg","companyId":0,"pic":6658642418470358,"picUrl":"http://p1.music.126.net/vHXzXIE1G7FRgA89e3CuAg==/6658642418470358.jpg","publishTime":1272816000000,"description":"","tags":"","company":"Two Steps From Hell","briefDesc":"","artist":{"name":"","id":0,"picId":0,"img1v1Id":0,"briefDesc":"","picUrl":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","img1v1Url":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","albumSize":0,"alias":[],"trans":"","musicSize":0,"topicPerson":0},"songs":[],"alias":["万夫莫敌"],"status":1,"copyrightId":0,"commentThreadId":"R_AL_3_1800915","artists":[{"name":"Two Steps From Hell","id":102714,"picId":0,"img1v1Id":0,"briefDesc":"","picUrl":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","img1v1Url":"http://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg","albumSize":0,"alias":[],"trans":"","musicSize":0,"topicPerson":0}],"subType":"录音室版","transName":null},"starred":false,"popularity":85.0,"score":85,"starredNum":0,"duration":154626,"playedNum":0,"dayPlays":0,"hearTime":0,"ringtone":"","crbt":null,"audition":null,"copyFrom":"","commentThreadId":"R_SO_4_19558027","rtUrl":null,"ftype":0,"rtUrls":[],"copyright":2,"transName":null,"sign":"Original","rtype":0,"rurl":null,"mvid":0,"bMusic":{"name":null,"id":102790001,"size":1856409,"extension":"mp3","sr":44100,"dfsId":0,"bitrate":96000,"playTime":154626,"volumeDelta":-0.58},"mp3Url":null,"hMusic":{"name":null,"id":102681999,"size":6187928,"extension":"mp3","sr":44100,"dfsId":0,"bitrate":320000,"playTime":154626,"volumeDelta":-0.96},"mMusic":{"name":null,"id":102682000,"size":3093986,"extension":"mp3","sr":44100,"dfsId":0,"bitrate":160000,"playTime":154626,"volumeDelta":-0.53},"lMusic":{"name":null,"id":102790001,"size":1856409,"extension":"mp3","sr":44100,"dfsId":0,"bitrate":96000,"playTime":154626,"volumeDelta":-0.58}}

下载歌单时,下载6首后停止下载

输出如下


jose@jose:~/utils/ncm/netease-cloud-music-dl$ ncm -p https://music.163.com/#/playlist?id=8729926516
1: In Case You Didn't Know
Mp3 file already download: Brett Young - In Case You Didn't Know.mp3
2: You Belong With Me
Mp3 file already download: Taylor Swift - You Belong With Me.mp3
3: When It Rains It Pours
Mp3 file already download: Luke Combs - When It Rains It Pours.mp3
4: Nobody But You (Duet with Gwen Stefani) [Live]
Mp3 file already download: Blake Shelton - Nobody But You (Duet with Gwen Stefani) [Live].mp3
5: Heaven
Mp3 file already download: Kane Brown - Heaven.mp3
6: Even Though I'm Leaving
Mp3 file already download: Luke Combs - Even Though I'm Leaving.mp3
jose@jose:~/utils/ncm/netease-cloud-music-dl$

调整图片大小 的函数问题,某些歌曲会有bug,OSError: cannot write mode P as JPEG

error:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/PIL/JpegImagePlugin.py", line 628, in _save
    rawmode = RAWMODE[im.mode]
KeyError: 'P'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/ncm", line 11, in <module>
    load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
  File "/usr/lib/python3.7/site-packages/ncm/start.py", line 67, in main
    download_song_by_id(get_parse_id(args.song_id), config.DOWNLOAD_DIR)
  File "/usr/lib/python3.7/site-packages/ncm/downloader.py", line 17, in download_song_by_id
    download_song_by_song(song, download_folder, sub_folder)
  File "/usr/lib/python3.7/site-packages/ncm/downloader.py", line 66, in download_song_by_song
    resize_img(os.path.join(song_download_folder, cover_file_name))
  File "/usr/lib/python3.7/site-packages/ncm/file_util.py", line 19, in resize_img
    img.save(file_path, quality=quality)
  File "/usr/lib/python3.7/site-packages/PIL/Image.py", line 2088, in save
    save_handler(self, fp, filename)
  File "/usr/lib/python3.7/site-packages/PIL/JpegImagePlugin.py", line 630, in _save
    raise IOError("cannot write mode %s as JPEG" % im.mode)
OSError: cannot write mode P as JPEG

样例:
蝉证序

处理方法:
先将img转为rgb模式,不再判断是否为png
原函数:

def resize_img(file_path, max_size=(640, 640), quality=90):
    try:
        img = Image.open(file_path)
    except IOError:
        print('Can\'t open image:', file_path)
        return

    if img.size[0] > max_size[0] or img.size[1] > max_size[1]:
        img.thumbnail(max_size, Image.ANTIALIAS)
        if img.format == 'PNG':
            img = img.convert('RGB')
        img.save(file_path, quality=quality)

修改:

def resize_img(file_path, max_size=(640, 640), quality=90):
    try:
        img = Image.open(file_path)
    except IOError:
        print('Can\'t open image:', file_path)
        return

    img=img.convert('RGB')

    if img.size[0] > max_size[0] or img.size[1] > max_size[1]:
        img.thumbnail(max_size, Image.ANTIALIAS)
        img.save(file_path, quality=quality)

报错,之前一直正常使用的

Traceback (most recent call last):
File "D:\Python\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "D:\Python\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.7.egg\ncm\start.py", line 76, in main
File "D:\Python\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.7.egg\ncm\start.py", line 42, in download_playlist_songs
File "D:\Python\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.7.egg\ncm\downloader.py", line 49, in download_song_by_song
File "D:\Python\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.7.egg\ncm\api.py", line 72, in get_song_url
File "D:\Python\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.7.egg\ncm\api.py", line 35, in post_request
File "D:\Python\lib\site-packages\requests\models.py", line 897, in json
return complexjson.loads(self.text, **kwargs)
File "D:\Python\lib\json_init_.py", line 348, in loads
return _default_decoder.decode(s)
File "D:\Python\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\Python\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

AttributeError: type object 'Path' has no attribute 'home'

ncm -h

Traceback (most recent call last):
File "/usr/local/bin/ncm", line 9, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 351, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2363, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2088, in load
entry = import(self.module_name, globals(),globals(), ['name'])
File "", line 2237, in _find_and_load
File "", line 2226, in _find_and_load_unlocked
File "", line 1191, in _load_unlocked
File "", line 1161, in _load_backward_compatible
File "/usr/local/lib/python3.4/dist-packages/netease_cloud_music_dl-0.2.0-py3.4.egg/ncm/start.py", line 6, in
File "", line 2237, in _find_and_load
File "", line 2226, in _find_and_load_unlocked
File "", line 1191, in _load_unlocked
File "", line 1161, in _load_backward_compatible
File "/usr/local/lib/python3.4/dist-packages/netease_cloud_music_dl-0.2.0-py3.4.egg/ncm/config.py", line 14, in
AttributeError: type object 'Path' has no attribute 'home'

有copyright的下载不了

NCM,有copyright的下载不了。
以前GIT有个netease-dl,它可以绕过copyright,但是netease-dl无人维护,最近netease music可能是升级了API等,netease-dl这套完全不能用了。

Only download first ten songs from a playlist?

不知道是歌单的处理方式变了还是怎么回事,可以下载热门50首,但是只要是歌单只能下载前10首. 之前几个月还是正常使用,换了新电脑后在python 3.9下就是这样了
image

Failed to establish a new connection: [Errno 61] Connection refused

ncm -p https://music.163.com/#/playlist?id=575568611
1 song name:静かな冬の夜
Traceback (most recent call last):
File "/usr/local/bin/ncm", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 75, in main
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 41, in download_playlist_songs
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/downloader.py", line 47, in download_song_by_song
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/api.py", line 72, in get_song_url
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/api.py", line 35, in post_request
File "/usr/local/lib/python3.6/site-packages/requests-2.18.3-py3.6.egg/requests/models.py", line 892, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/init.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Not an validate MP3 file!

不知何时起开始这样的, 所有歌都一样

ncm -s 1365844416
Progress: 100.00%,     0.36KB, [OneRepublic - Rescue Me.mp3]
Progress: 100.00%,   876.14KB, [cover_1365844416.jpg]
Can't sync to MPEG frame, not an validate MP3 file!

ncm -s 1331800077
Progress: 100.00%,     0.36KB, [Rich Edwards - Turn Back Time.]
Progress: 100.00%,  3700.17KB, [cover_1331800077.jpg]
Can't sync to MPEG frame, not an validate MP3 file!

请求支持 FLAC 文件

现在的接口貌似可以下载到 FLAC 的歌曲了,为啥不支持 FLAC 呢 (不过转了一圈要给 FLAC 加封面貌似有点麻烦就是了

KeyError: 'RGBA'

Traceback (most recent call last):
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pillow-4.3.0-py3.6-win32.egg\PIL\JpegImagePlugin.py", line 605, in _save
KeyError: 'RGBA'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 76, in main
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 42, in download_playlist_songs
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 64, in download_song_by_song
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\file_util.py", line 17, in resize_img
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pillow-4.3.0-py3.6-win32.egg\PIL\Image.py", line 1928, in save
File "C:\Users\lvshui\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pillow-4.3.0-py3.6-win32.egg\PIL\JpegImagePlugin.py", line 607, in _save
OSError: cannot write mode RGBA as JPEG

error: The read operation timed out

Installed d:\program files\python\python35\lib\site-packages\netease_cloud_music
_dl-0.2.0-py3.5.egg
Processing dependencies for netease-cloud-music-dl==0.2.0
Searching for pycrypto>=2.6.1
Reading https://pypi.python.org/simple/pycrypto/
Best match: pycrypto 2.6.1
Downloading https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de3
3889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf516
1a0d5d7eda
error: The read operation timed out

下载歌曲时报错

95: Moon
Progress: 100.00%, 4167.80KB, [Wisp X - Moon.mp3]
Traceback (most recent call last):ver_466993540.jpg]
File "/usr/local/lib/python3.7/dist-packages/PIL/ImageFile.py", line 233, in load
s = read(self.decodermaxblock)
File "/usr/local/lib/python3.7/dist-packages/PIL/PngImagePlugin.py", line 846, in load_read
cid, pos, length = self.png.read()
File "/usr/local/lib/python3.7/dist-packages/PIL/PngImagePlugin.py", line 129, in read
length = i32(s)
File "/usr/local/lib/python3.7/dist-packages/PIL/_binary.py", line 71, in i32be
return unpack_from(">I", c, o)[0]
struct.error: unpack_from requires a buffer of at least 4 bytes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/bin/ncm", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/start.py", line 76, in main
File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/start.py", line 42, in download_playlist_songs
File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/downloader.py", line 66, in download_song_by_song
File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/file_util.py", line 16, in resize_img
File "/usr/local/lib/python3.7/dist-packages/PIL/Image.py", line 2289, in thumbnail
im = self.resize(size, resample, box=box, reducing_gap=reducing_gap)
File "/usr/local/lib/python3.7/dist-packages/PIL/Image.py", line 1882, in resize
im = self.convert(self.mode[:-1] + "a")
File "/usr/local/lib/python3.7/dist-packages/PIL/Image.py", line 901, in convert
self.load()
File "/usr/local/lib/python3.7/dist-packages/PIL/ImageFile.py", line 239, in load
raise OSError("image file is truncated")
OSError: image file is truncated

为什么不能下载

安装成功为啥不能下载
也没有输出啥
现在是https 链接 是不是不能解密 所以不能下载

code': -460, 'msg': 'Cheating'

查到需要在config.py里面添加headers cookie 但不知道怎么做

Return {'code': -460, 'msg': 'Cheating'} when try to post {'ids': [273369], 'br': 320000, 'csrf_token': ''} => http://music.163.com/weapi/song/enhance/player/url?csrf_token=
Traceback (most recent call last):
File "E:\Python3.6.5\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 76, in main
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 42, in download_playlist_songs
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 49, in download_song_by_song
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\api.py", line 73, in get_song_url
TypeError: 'NoneType' object is not subscriptable

TypeError: Only byte strings can be passed to C code

跑一下程序,遇到这样的问题,环境win7 python 3.6
PS D:\netease-cloud-music-dl> ncm -s 27256783
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 66, in mai
n
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 15, i
n download_song_by_id
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 47, i
n download_song_by_song
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\api.py", line 72, in get_s
ong_url
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\api.py", line 33, in post_
request
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\encrypt.py", line 15, in e
ncrypted_request
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\encrypt.py", line 24, in a
es_encrypt
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher\AES.py", line 264, in new
return create_cipher(sys.modules[name], key, mode, *args, **kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher_init
.py", line 130, in _create_cipher
return modes[mode](factory, **kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher_mode_cbc.py", line 232, in _create_cbc_cipher
cipher_state = factory._create_base_cipher(kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher\AES.py", line 131, in create_base_cipher
expect_byte_string(key)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Util_raw_api.py", line 175, in expect_byte_string
raise TypeError("Only byte strings can be passed to C code")
TypeError: Only byte strings can be passed to C code
PS D:\wy\netease-cloud-music-dl> ncm -s http://music.163.com/song?id=27256783
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 66, in mai
n
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 15, i
n download_song_by_id
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 47, i
n download_song_by_song
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\api.py", line 72, in get_s
ong_url
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\api.py", line 33, in post

request
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\encrypt.py", line 15, in e
ncrypted_request
File "c:\programdata\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\encrypt.py", line 24, in a
es_encrypt
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher\AES.py", line 264, in new
return create_cipher(sys.modules[name], key, mode, *args, **kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher_init
.py", line 130, in _create_cipher
return modes[mode](factory, **kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher_mode_cbc.py", line 232, in _create_cbc_cipher
cipher_state = factory._create_base_cipher(kwargs)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Cipher\AES.py", line 131, in _create_base_cipher
expect_byte_string(key)
File "c:\programdata\anaconda3\lib\site-packages\Crypto\Util_raw_api.py", line 175, in expect_byte_string
raise TypeError("Only byte strings can be passed to C code")
TypeError: Only byte strings can be passed to C code

错误代码 -460 “网络太拥挤,请稍候再试”

Return {'code': -460, 'message': '网络太拥挤,请稍候再试!'} when try to post {'ids': [40729218], 'br': 320000, 'csrf_token': ''} => http://music.163.com/weapi/song/enhance/player/url?csrf_token=
Traceback (most recent call last):
  File "/usr/local/bin/ncm", line 33, in <module>
    sys.exit(load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')())
  File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/start.py", line 69, in main
  File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/downloader.py", line 22, in download_song_by_id
  File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/downloader.py", line 54, in download_song_by_song
  File "/usr/local/lib/python3.7/dist-packages/netease_cloud_music_dl-0.2.0-py3.7.egg/ncm/api.py", line 73, in get_song_url
TypeError: 'NoneType' object is not subscriptable

Return {'code': -460, 'msg': 'Cheating'}

无法下载音乐,提示Cheating

(venv) hu@NASA:~$ ncm -p http://music.163.com/#/m/playlist?id=438323195
1: Under Construction
Return {'code': -460, 'msg': 'Cheating'} when try to post {'ids': [421563589], 'br': 320000, 'csrf_token': ''} => http://music.163.com/weapi/song/enhance/player/url?csrf_token=
Traceback (most recent call last):
  File "/home/hu/Git/netease-cloud-music-dl/venv/bin/ncm", line 11, in <module>
    load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
  File "/home/hu/Git/netease-cloud-music-dl/venv/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 76, in main
  File "/home/hu/Git/netease-cloud-music-dl/venv/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 42, in download_playlist_songs
  File "/home/hu/Git/netease-cloud-music-dl/venv/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/downloader.py", line 49, in download_song_by_song
  File "/home/hu/Git/netease-cloud-music-dl/venv/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/api.py", line 73, in get_song_url

Windows下某些符号导致保存时报错

如歌曲ID 454069168

·17 song name:ты любил её ?!
Traceback (most recent call last):
  File "C:\Users\Administrator\Miniconda3\Scripts\ncm-script.py", line 11, in <module>
    load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
  File "C:\Users\Administrator\Miniconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 75, in main
  File "C:\Users\Administrator\Miniconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 41, in download_playlist_songs
  File "C:\Users\Administrator\Miniconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 51, in download_song_by_song
  File "C:\Users\Administrator\Miniconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 85, in download_file
OSError: [Errno 22] Invalid argument: 'C:\\Users\\Administrator\\.ncm\\download\\dalebotbeats - ты любил её ?!.mp3'

可否跳过处理,最后反馈?

感谢~

ncm -p https://music.163.com/playlist?id=874616835下到759这里出错

759: What’s your name? (collaboration with 壇蜜)
Traceback (most recent call last):
File "E:\Python3.6.5\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 76, in main
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\start.py", line 42, in download_playlist_songs
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 53, in download_song_by_song
File "E:\Python3.6.5\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\ncm\downloader.py", line 92, in download_file
OSError: [Errno 22] Invalid argument: 'E:\pd下载\my music\临时新 - playlist\What’s your name (collaboration with 壇蜜)\t.mp3'

不太懂报错

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/ncm", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pkg_resources/init.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pkg_resources/init.py", line 2793, in load_entry_point
return ep.load()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pkg_resources/init.py", line 2411, in load
return self.resolve()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pkg_resources/init.py", line 2417, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
ModuleNotFoundError: No module named 'ncm'

大神,Python 3.5 安装报错

he headers or library files could not be found for zlib,
a required dependency when compiling Pillow from source.

Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html

Traceback (most recent call last):
File "/var/folders/kf/chkwq36d5tjfd8bc4wyxn7cw0000gn/T/easy_install-ml4gskih/Pillow-5.3.0/setup.py", line 802, in
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 161, in run
cmd = self.call_command('install_lib', warn_dir=0)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 147, in call_command
self.run_command(cmdname)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/install_lib.py", line 11, in run
self.build()
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/command/install_lib.py", line 107, in build
self.run_command('build_ext')
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/command/build_ext.py", line 338, in run
self.build_extensions()
File "/var/folders/kf/chkwq36d5tjfd8bc4wyxn7cw0000gn/T/easy_install-ml4gskih/Pillow-5.3.0/setup.py", line 589, in build_extensions
main.RequiredDependencyException: zlib

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 157, in save_modules
yield saved
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 198, in setup_context
yield
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 255, in run_setup
DirectorySandbox(setup_dir).run(runner)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 285, in run
return func()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 253, in runner
_execfile(setup_script, ns)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 47, in _execfile
exec(code, globals, locals)
File "/var/folders/kf/chkwq36d5tjfd8bc4wyxn7cw0000gn/T/easy_install-ml4gskih/Pillow-5.3.0/setup.py", line 814, in
main.RequiredDependencyException:

The headers or library files could not be found for zlib,
a required dependency when compiling Pillow from source.

Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "setup.py", line 26, in
keywords=['ncm', 'netease', 'cloud-music', 'downloader'],
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/install.py", line 67, in run
self.do_egg_install()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/install.py", line 117, in do_egg_install
cmd.run()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 411, in run
self.easy_install(spec, not self.no_deps)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 655, in easy_install
return self.install_item(None, spec, tmpdir, deps, True)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 702, in install_item
self.process_distribution(spec, dist, deps)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 747, in process_distribution
[requirement], self.local_index, self.easy_install
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/pkg_resources/init.py", line 851, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/pkg_resources/init.py", line 1123, in best_match
return self.obtain(req, installer)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/pkg_resources/init.py", line 1135, in obtain
return installer(requirement)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 674, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 700, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 881, in install_eggs
return self.build_and_install(setup_script, setup_base)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 1120, in build_and_install
self.run_setup(setup_script, setup_base, args)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 1106, in run_setup
run_setup(setup_script, args)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 258, in run_setup
raise
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 198, in setup_context
yield
File "/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 77, in exit
self.gen.throw(type, value, traceback)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 169, in save_modules
saved_exc.resume()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 144, in resume
six.reraise(type, exc, self._tb)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 157, in save_modules
yield saved
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 198, in setup_context
yield
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 255, in run_setup
DirectorySandbox(setup_dir).run(runner)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 285, in run
return func()
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 253, in runner
_execfile(setup_script, ns)
File "/Users/john/.virtualenvs/myenv/lib/python3.5/site-packages/setuptools/sandbox.py", line 47, in _execfile
exec(code, globals, locals)
File "/var/folders/kf/chkwq36d5tjfd8bc4wyxn7cw0000gn/T/easy_install-ml4gskih/Pillow-5.3.0/setup.py", line 814, in
setuptools.sandbox.UnpickleableException: RequiredDependencyException('\n\nThe headers or library files could not be found for zlib,\na required dependency when compiling Pillow from source.\n\nPlease see the install instructions at:\n https://pillow.readthedocs.io/en/latest/installation.html\n\n',)

TypeError: expected str, bytes or os.PathLike object, not NoneType

Windows7 X64 anaconda3-4.4.0

C:\Users\Administrator\.ncm>ncm -s 123123
Traceback (most recent call last):
  File "C:\Anaconda3\Scripts\ncm-script.py", line 11, in <module>
    load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')(
)
  File "C:\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg\pkg_resources
\__init__.py", line 565, in load_entry_point
  File "C:\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg\pkg_resources
\__init__.py", line 2598, in load_entry_point
  File "C:\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg\pkg_resources
\__init__.py", line 2258, in load
  File "C:\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.6.egg\pkg_resources
\__init__.py", line 2264, in resolve
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "c:\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\nc
m\start.py", line 6, in <module>
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "c:\anaconda3\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.6.egg\nc
m\config.py", line 13, in <module>
  File "C:\Anaconda3\lib\ntpath.py", line 75, in join
    path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not NoneType

UnicodeEncodeError: 'gbk' codec can't encode character '\xe5' in position 36: illegal multibyte sequence

Mp3 file already download: Traceback (most recent call last):
File "C:\Users\chenyue\AppData\Local\Programs\Python\Python35-32\Scripts\ncm-script.py", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "C:\Users\chenyue\AppData\Local\Programs\Python\Python35-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.5.egg\ncm\start.py", line 76, in main
File "C:\Users\chenyue\AppData\Local\Programs\Python\Python35-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.5.egg\ncm\start.py", line 42, in download_playlist_songs
File "C:\Users\chenyue\AppData\Local\Programs\Python\Python35-32\lib\site-packages\netease_cloud_music_dl-0.2.0-py3.5.egg\ncm\downloader.py", line 54, in download_song_by_song
UnicodeEncodeError: 'gbk' codec can't encode character '\xe5' in position 36: illegal multibyte sequence

-bash: ncm: command not found

安装完了,提示ncm找不到?
Finished processing dependencies for netease-cloud-music-dl==0.2.0
bogon:~ huai$ ncm
-bash: ncm: command not found

mac系统下报错

ncm -p https://music.163.com/#/song?id=557581476
Traceback (most recent call last):
File "/usr/local/bin/ncm", line 11, in
load_entry_point('netease-cloud-music-dl==0.2.0', 'console_scripts', 'ncm')()
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 76, in main
File "/usr/local/lib/python3.6/site-packages/netease_cloud_music_dl-0.2.0-py3.6.egg/ncm/start.py", line 41, in download_playlist_songs
UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-6: ordinal not in range(128)

目录重名的问题

两个歌单如果是同一个名字,会下载到同一个目录中去。建议可以自动区分一下。
album有没有重名的问题还没有试过。

跳过已下载的机制

目前跳过已下载的机制是通过检测是否有同名文件存在的。
这就限定:

  1. 所有的音乐都下载到同一台电脑的同一个文件夹
  2. 下载了以后你不想保留了,为了以后能检测重复也不能删

也就是说,ncm的适用场景是用于下载歌曲后永久保存,不适用于一下场景:

  1. 多台电脑,同时使用ncm
  2. 随听随删而又不想或不能用网易云客户端

也许可以额外记录网易云音乐的歌曲 id 来检测重复。
然后这个历史文件可以用 git 或 dropbox 之类的东西管理,
也可由ncm本身实现同步。

我当前即尝试记录歌曲 id, 然后历史文件用 git 管理,调用ncm下载单曲。

可参考 weakish/fm163

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.