Linux下面最常用的下载工具就是Aria2了,为了方便使用我都是通过RPC结合yaaw来进行下载管理的,可是每次都是把链接复制到yaaw上面过于麻烦,于是先看看有没有简单的方法,于是在网上找到了shell版本的Aria添加脚本,我结合自己的需求改进了一下,添加了referer参数,支持Aria的tekon验证。
#!/bin/bash
usage='Usage: aria2rpc.sh [-c COOKIE] [-d DIR] [-o NAME] [-R referer] [-H header] URL [URL..]'
while [[ -n "$1" ]];do
case "$1" in
-c|--cookie) shift; cookie="$1" ;;
-d|--dir) shift; dir="$1" ;;
-o|--out) shift; output="$1" ;;
-r|--rpc) shift; rpc="$1" ;;
-H|--header) shift; header="$1" ;;
-R|--referer) shift; referer="$1" ;;
-h|--help) echo "$usage"; exit ;;
*) uris[$((i++))]="$1" ;;
esac
shift
done
if ((${#uris[@]}==0));then
echo "$usage"
exit
fi
URIs=$(IFS=, ;echo "${uris[*]}"|sed 's/,/","/g;s/^/"/;s/$/"/')
if [[ -z "$rpc" ]];then
rpc='http://127.0.0.1:6800/jsonrpc'
fi
Options="{"
if [[ -n "$cookie" ]];then
Options="$Options"'"header":["Cookie: '"$cookie"'"],'
fi
if [[ -n "$referer" ]];then
Options="$Options"'"referer":"'"$referer"'",'
fi
if [[ -n "$header" ]];then
Options="$Options"'"header":"'"$header"'",'
fi
if [[ -n "$dir" ]];then
Options="$Options"'"dir":"'"$dir"'",'
fi
if [[ -n "$output" ]];then
Options="$Options"'"out":"'"$output"'",'
fi
Options="${Options%,}"
Options="$Options""}"
jsonTemplate='{"jsonrpc":"2.0","id":"qwer","method":"aria2.addUri","params":["token:token",['"$URIs"'],'"$Options"']}'
curl -X POST -d "$jsonTemplate" --header "Content-Type:application/json" "$rpc"
把上面的代码写入到一个文件并赋予执行权限之后火狐上面使用xtunder添加下载工具,然后选择此脚本,就可以下载了