一个用python简单的封装了aria2的jsonrpc中adduri的脚本

aria2是一个十分牛逼的下载神器,有时候项目须要一个很牛逼的下载中间件的话,aria2是一个不错的选择。其中支持jsonrpc和websocket的特性尤为诱人。可是python用起来仍是有点不爽,因此简单封装一下aria2的jsonrpc。javascript

因此,用python简单的封装了aria2的jsonrpc中adduri的脚本。 使用起来很是简单,仅须要三行代码。html

 

from pyaria2 import Jsonrpc
jsonrpc = Jsonrpc('localhost', 6800)
resp = jsonrpc.addUris('https://music.snowmusic.cc/radio/13714_1507261169_4.mp3', options={"out": "aa.mp3"})
print resp
# {"id":0,"jsonrpc":"2.0","result":"3f6fa9aa6428a25f"}

  

Install

首先须要安装aria2c(以mac为例)java

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null 

 

而后使用homebrew安装便可python

brew install aria2 

而后本身找一个文件夹新建一个aria2.conf文件,示例以下:nginx

#容许rpc enable-rpc=true #容许非外部访问 rpc-listen-all=true #RPC端口, 仅当默认端口被占用时修改 rpc-listen-port=6800 #最大同时下载数(任务数), 路由建议值: 3 max-concurrent-downloads=10 #断点续传 continue=true #同服务器链接数 max-connection-per-server=10 #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要 min-split-size=10M #单文件最大线程数, 路由建议值: 5 split=10 #下载速度限制 max-overall-download-limit=0 #单文件速度限制 max-download-limit=0 #上传速度限制 max-overall-upload-limit=0 #单文件速度限制 max-upload-limit=0 #文件保存路径, 默认为当前启动位置 dir=./Files #hook 文件的路径 on-download-complete=/Users/csx/GitProject/snowmusic/pyaria2-jsonrpc/hook.py 

其中hook文件路径是回调脚本的路径,这里要改成开发者当前hook文件路径git

启动aria2github

# 这里是填入aria2.conf的路径 aria2c --conf-path=aria2.conf 

Use

首先导入pyaria2模块的jsonrpcweb

from pyaria2 import Jsonrpc 

编写hook.py,用于下载完成的回调。数据库

import sys # ['/Users/csx/GitProject/snowmusic/pyaria2-jsonrpc/hook.py', 'e3f97be6d4490a5a', '1', './temp/aa.mp3'] Argv = sys.argv # 这里本身编写任意的回调函数,能够进行更新数据库等操做 def Hook(Argv): print Argv 

而后直接调用就能够了。json

jsonrpc = Jsonrpc('localhost', 6800) resp = jsonrpc.addUris('https://music.snowmusic.cc/radio/13714_1507261169_4.mp3', options={"out": "aa.mp3"}) print resp 

 http://aria2.github.io/manual/en/html/index.html

相关文章
相关标签/搜索