Home Linux使用百度网盘
Post
Cancel

Linux使用百度网盘

在linux下很容易想到使用wine或crossover安装windows版本的百度网盘。但这样仍然会受限速的困扰。使用BaiduPCS-GO的多线程并行下载能有效提高速度,并且其类终端交互方式在linux的使用中对编写自定义脚本更为友好。

目前作者已停止更新,但仍能使用

安装

在其项目github release页下载设备对应平台的版本。解压到任意目录,其中dowload文件夹是下载文件夹,BaiduPCS-GO是执行程序,使用chmod +x BaiduPCS-Go为其赋权

使用

基本开箱即用,执行其程序。并用help命令查看指令帮助,大多和linux类似,详细介绍省略
可以执行程序进入其界面,也可./BaiduPCS-GO ls带参数执行单条命令,方便编写脚本

  • 由于该软件已被百度云记录,不能直接下载
    需要更改appid来获取下载权限(由于百度云保证/apps/baidu_shurufa路径,即自家百度输入法的下载权限和速率,所以可以将文件放到此目录下载),但拥有下载权限的appid又没有根目录权限

    满速权限:config set -appid=265486
    根目录权限:config set -appid=266719
    满速目录:/apps/baidu_shurufa

    下载流程为:

    1. 更换为根目录权限appid
    2. 移动下载文件到/apps/baidu_shurufa
    3. 更换为下载权限appid,下载

  • 直接编写脚本
    该脚本涵盖了3个我常用的功能,下载,删除,bt磁力下载

    1. 下载,是我将所有要下载的文件先转移到/我的资源文件夹,执行脚本,输入序号即可下载,下载大致流程的上述相同,下载完毕后打开所在路径的文件夹

    2. 删除,我发现不如直接使用其内置的删除命令,还能使用通配符,所以脚本的删除功能也就是切换权限并跳到/我的资源文件夹下,也可以单纯使用该命令快速换权并进入程序

    3. bt磁力下载,可惜该软件不能显示磁力下载的进度,所以我使用watch -n来监测/我的资源文件夹下的变化,对于很快下载完的文件还好,但是对于下载失败或者磁力速度特别慢的只能去网页上看了

    编写脚本后使用ln -s <脚本绝对路径> ~/.lcoal/bin/baidu-dl软链接到baidu-dl命令

    • 下载 baidu-dl
    • 删除 baidu-dl del
    • bt下载 baidu-dl bt

    脚本如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
      #!/bin/bash
      SCRIPT_PATH="/home/mopip77/Desktop/BaiduPCS-Go-v3.5.6-linux-amd64"  # 程序路径
      FILE_STORE_PATH="/我的资源/"  # 网盘上下载文件夹路径
      TMP_LIST_FILE="/tmp/baidu_pan.tmp"  # 临时文件
      DOWNLOAD_PATH="/home/mopip77/Desktop/BaiduPCS-Go-v3.5.6-linux-amd64/download/1131301918_Mopip77/apps/baidu_shurufa"  # 本机下载的位置(因为都转移到baidu_shurufa下了,所以/apps/baidu_shurufa即为本机的下载根路径)
    
      cd $SCRIPT_PATH
      # 切换权限账号
      ./BaiduPCS-Go config set -appid=266719
    
      if [[ $# -eq 1 && $1 == "del" ]]
      then
          echo -e "\033[46;30m 使用rm命令删除文件\033[0m:"
          ./BaiduPCS-Go ls "$FILE_STORE_PATH"
          ./BaiduPCS-Go cd "$FILE_STORE_PATH"
          ./BaiduPCS-Go
      elif [[ $# -eq 1 && $1 == "bt" ]]
      then
          # 磁力下载
          echo -e "\033[46;30m 输入磁力链接:\033[0m:"
          read btLink
          ./BaiduPCS-Go od add -path=$FILE_STORE_PATH "$btLink"
          watch -n 3 ./BaiduPCS-Go ls "$FILE_STORE_PATH"
      else
          # 下载
          ./BaiduPCS-Go ls "$FILE_STORE_PATH" > $TMP_LIST_FILE 
          ./BaiduPCS-Go ls "$FILE_STORE_PATH"
          echo -e "\033[46;30m 输入文件(夹)编号下载: \033[0m"
          read dlCodes
    
          # 记录所有下载文件的名字
          index=0
          dlFileNames=()
          for i in ${dlCodes[*]}
          do
          # 前五行无用, 也不用sed删了, 直接加一下吧
              let num=i+5
              dlFileNames[$index]=$(cat $TMP_LIST_FILE | awk 'NR=="'$num'"{print $5}')
              let index=index+1
          done
    
          # 转移所有下载文件
          ./BaiduPCS-Go cd $FILE_STORE_PATH
          ./BaiduPCS-Go cp ${dlFileNames[*]} /apps/baidu_shurufa
            
          # 下载所有文件
          ./BaiduPCS-Go cd /apps/baidu_shurufa/
          ./BaiduPCS-Go config set -appid=265486
          ./BaiduPCS-Go d ${dlFileNames[*]}
    
          # 删除要下载的文件(/app/baidu_shurufa文件夹下的)
          ./BaiduPCS-Go rm ${dlFileNames[*]}
          exo-open --launch FileManager $DOWNLOAD_PATH
      fi
    
This post is licensed under CC BY 4.0 by the author.

Ffmpeg常见用法【持续更新】

mpv播放器介绍