python教程

Aria2的API接口进行批量下载Python源码

我的站长站 2023-09-05 人阅读
import requests
import json
 
 
class Aria2Download:
    def __init__(self):
        self.api = "http://localhost:6800/jsonrpc"
        # 消息id,aria2会原样返回这个id,可以自动生成也可以用其他唯一标识
        self.id = "QXJpYU5nXzE2NzUxMzUwMDFfMC42Mzc0MDA5MTc2NjAzNDM="
 
    def addUri(self, url, path, file=None, proxy=None):
        """
        添加任务
        :param url: 文件下载地址
        :param path: 文件保存路径
        :param file: 文件保存名称
        :param proxy: 代{过}{滤}理地址
        :return:
        """
        data = {
            "id": self.id,
            "jsonrpc": "2.0",
            "method": "aria2.addUri",
            "params": [[url], {"dir": path, "out": file, "all-proxy": proxy}]
        }
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("addUri", return_json)
        return return_json
 
    def getGlobalStat(self):
        """
        获取全部下载信息
        :return:
        """
        data = {
            "jsonrpc": "2.0",
            "method": "aria2.getGlobalStat",
            "id": self.id
        }
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("getGlobalStat", return_json)
        return return_json
 
    def tellActive(self):
        """
        正在下载
        :return:
        """
        data = {
            "jsonrpc": "2.0",
            "method": "aria2.tellActive",
            "id": self.id, "params": [
                ["gid", "totalLength", "completedLength", "uploadSpeed", "downloadSpeed", "connections", "numSeeders",
                 "seeder", "status", "errorCode", "verifiedLength", "verifyIntegrityPending", "files", "bittorrent",
                 "infoHash"]]
        }
 
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("getGlobalStat", return_json)
        return return_json
 
    def tellWaiting(self):
        """
        正在等待
        :return:
        """
        data = {"jsonrpc": "2.0", "method": "aria2.tellWaiting",
                "id": self.id,
                "params": [0, 1000, ["gid", "totalLength",
                                     "completedLength",
                                     "uploadSpeed",
                                     "downloadSpeed",
                                     "connections",
                                     "numSeeders",
                                     "seeder", "status",
                                     "errorCode",
                                     "verifiedLength",
                                     "verifyIntegrityPending"]
                           ]
                }
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        print("tellWaiting", return_json)
        return return_json
 
    def tellStopped(self):
        """
        已完成/已停止
        :return:
        """
        data = {"jsonrpc": "2.0",
                "method": "aria2.tellStopped",
                "id": self.id,
                "params": [-1, 1000, ["gid", "totalLength",
                                      "completedLength",
                                      "uploadSpeed",
                                      "downloadSpeed",
                                      "connections",
                                      "numSeeders", "seeder",
                                      "status", "errorCode",
                                      "verifiedLength",
                                      "verifyIntegrityPending"]]
                }
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("tellStopped", return_json)
        return return_json
 
    def tellStatus(self, gid):
        """
        任务状态
        :param gid: 任务ID
        :return:
        """
        data = {"jsonrpc": "2.0", "method": "aria2.tellStatus", "id": self.id, "params": [gid]}
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("tellWaiting", return_json)
        return return_json
 
    def removeDownloadResult(self, gid):
        """
        删除下载结束的任务
        :param gid: 任务ID
        :return:
        """
        data = {"jsonrpc": "2.0", "method": "aria2.removeDownloadResult", "id": self.id, "params": [gid]}
        req = requests.post(url=self.api, data=json.dumps(data))
        return_json = req.json()
        req.close()
        # print("removeDownloadResult", return_json)
        return return_json


相关推荐
  • Aria2
  • 批量下载
  • Python源码
  • 在线版Aria2 WebUI加速下载工具
    在线版Aria2 WebUI加速下载工具

    又一款在线版Aria2 WebUI加速下载工具,可以在线Aria2加速下载,再也不用下载软件版了。记得使用前需要修改Aria2 RPC 主机和端口配置才可以正常使用。在线Aria2工具截图...

    在线工具 262 3年前
  • 最新可用Aria2多线程下载工具DOS版
    最新可用Aria2多线程下载工具DOS版

    最新可用Aria2多线程下载工具DOS版,2021年3月7日测试可正常加速使用,配合直连工具,10M秒下载百度云盘资源。注意下载后的文件需要修改下后缀名,下载前的后缀是什么就改成什么。测试360会报毒,我的站长...

    开发软件 143 3年前
  • Aria2在线下载工具网页版
    Aria2在线下载工具网页版

    Aria2在线下载工具网页版,无需下载Aria2就可以在线使用Aria2加速下载服务。Aria2 跟 IDM 类似,不仅可以多线程下载,还可以通过多来源进行下载,简单的说就是从多个镜像服务器同时下载一个文件,Aria2 还...

    在线工具 1393 3年前
  • 基于Aria2批量下载API接口源码

    import requestsimport json class Aria2Download: def __init__(self): self.api = "http://localhost:6800/jsonrpc" # 消息id,aria2会原样返回这个id,可以自动生成也可以用其他唯一标识 self.id = "QXJpYU5nXzE2NzUxMzUwM...

    python教程 11 1年前
  • 酷狗音乐歌单批量下载器
    酷狗音乐歌单批量下载器

    将自己需要下载的歌放进一个列表->分享列表->选择qq空间分享->复制qq空间上的分享的酷狗链接将链接填入软件,点击获取歌单开始下载即可。...

    软件分享 368 4年前
  • 吾爱分享酷狗音乐批量下载软件
    吾爱分享酷狗音乐批量下载软件

    吾爱分享酷狗音乐批量下载软件,本音乐下载软件为歌单批量下载,所以在下之前需要把歌曲收藏进歌单,然后分享才能下载。酷狗音乐下载使用方法一、将自己需要下载的歌放进一个列表。分享列表。选择qq空...

    软件分享 259 4年前
  • Json压缩和格式化工具,附Python源码
    Json压缩和格式化工具,附Python源码

    软件介绍一款Json压缩和格式化工具,可以在线Json压缩和格式化。基于Python库开发,附上Python源码,GUI没有美化,巨丑。软件截图Python源码import jsonimport tkinter as tkdef json_compress(json_str...

    开发软件 55 1年前
  • python打飞机小游戏源码+成品打包

    python源码用的pygame库,自带的random和os。程序运行需要的图片,声音和字体下载链接: https://pan.baidu.com/s/1KItG2usXOM_xcxcdHIixaw 提取码: qmweimport pygameimport randomimport os FPS = 60WIDTH = 500HEIGHT = 600 BLACK = (0, 0, 0)WHITE =...

    python教程 55 1年前
  • 原创力文库Python爬虫下载源码

    # !/usr/bin/python# -*- coding: UTF-8 -*-import reimport jsonimport osimport shutilimport sysimport timeimport requestsimport img2pdffrom PIL import Image from alive_progress import alive_barfrom requests.exceptions import SSLErro...

    python教程 65 1年前
最新更新