codezjx / netease-cloud-music-dl Goto Github PK
View Code? Open in Web Editor NEWNetease cloud music song downloader, with full ID3 metadata, eg: front cover image, artist name, album name, song title and so on.
License: MIT License
Netease cloud music song downloader, with full ID3 metadata, eg: front cover image, artist name, album name, song title and so on.
License: MIT License
ncm -p 701612700
只能下到求佛一首
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,为何没有下载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}}
输出如下
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$
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)
pycrypto 的最新 stable 2.6.1 发布于 2013-10-15/2014-06-20,最后的 commit 时间是 2014-06-21
看起来作者已经放弃了这个项目 pycrypto/pycrypto#238
是否考虑如 pycrypto/pycrypto#238 推荐的,替换成 pycryptodome
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)
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'
NCM,有copyright的下载不了。
以前GIT有个netease-dl,它可以绕过copyright,但是netease-dl无人维护,最近netease music可能是升级了API等,netease-dl这套完全不能用了。
显示提示安装Visual C++ 2015 Build Tools
安装完了再install的时候就提示error: Setup script exited with error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe' failed with exit status 2了
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)
好像不能下载专辑
使用命令行为:
ncm -s url -a ?
不知何时起开始这样的, 所有歌都一样
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 加封面貌似有点麻烦就是了
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
建议把-s和-ss参数合并为一个参数,并使其实现-ss的功能
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://music.163.com/#/song?id=611923 这一首
在下载专辑图的时候会出现异常 blurPicurl 是 None
然后整个过程中断
RT
冲了会员,就是为了能下无损的flac去的
安装成功为啥不能下载
也没有输出啥
现在是https 链接 是不是不能解密 所以不能下载
查到需要在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
跑一下程序,遇到这样的问题,环境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
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
无法下载音乐,提示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
如歌曲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'
可否跳过处理,最后反馈?
感谢~
Be silent on successful downloading tracks and covers,
only reports failed downloads.
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'
歌曲名称中存在韩文会报错 示例歌曲ID 5324243 歌名 당신이 가신 비온 뒤 맑은 하늘을 바라봅니다
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'
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',)
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
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
显示下载成功的log
但是没有找到下载目录在哪里,也没有找到配置的ini文件。
安装完了,提示ncm找不到?
Finished processing dependencies for netease-cloud-music-dl==0.2.0
bogon:~ huai$ ncm
-bash: ncm: command not found
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)
这样方便下歌,就不用先去黏贴id再来下了
两个歌单如果是同一个名字,会下载到同一个目录中去。建议可以自动区分一下。
album有没有重名的问题还没有试过。
目前跳过已下载的机制是通过检测是否有同名文件存在的。
这就限定:
也就是说,ncm
的适用场景是用于下载歌曲后永久保存,不适用于一下场景:
ncm
也许可以额外记录网易云音乐的歌曲 id 来检测重复。
然后这个历史文件可以用 git 或 dropbox 之类的东西管理,
也可由ncm
本身实现同步。
我当前即尝试记录歌曲 id, 然后历史文件用 git 管理,调用ncm
下载单曲。
可参考 weakish/fm163
https://github.com/mrlovables/Netease
这个项目中有 高音质/标准音质/低音质的区分下载,该方法是否有效?能否借鉴?
在频繁调用接口的情况下,有概率性会返回406,第一次隔20s左右能恢复,第二次大概要60s,估计是网易云对频繁请求做了限流。
When use -hot/-a/-p
options and if the folder name contains illegal characters, download may abort and throw exception in some platform.
e.g: ncm -a https://music.163.com/#/album?id=2569036
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.