3分钟搞定百度网盘批量转存与自动下载:BaiduPCS-Go脚本实战指南

3分钟搞定百度网盘批量转存与自动下载:BaiduPCS-Go脚本实战指南

【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 【免费下载链接】BaiduPCS-Go 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go

你是否还在为手动处理大量百度网盘分享链接而头疼?每次转存文件都需要复制链接、输入提取码、等待转存完成,再手动点击下载按钮?现在,这些重复劳动可以通过BaiduPCS-Go脚本来自动化完成。本文将详细介绍如何编写和使用批量转存与自动下载脚本,让你轻松管理百度网盘资源。

为什么选择BaiduPCS-Go脚本?

BaiduPCS-Go是一款基于命令行的百度网盘客户端,支持多种高级功能,如文件管理、分享链接转存、离线下载等。通过编写脚本来调用BaiduPCS-Go的命令,可以实现自动化操作,大大提高工作效率。

BaiduPCS-Go Logo

主要优势:

  • 支持批量处理多个分享链接
  • 自动输入提取码,无需人工干预
  • 转存完成后可自动触发下载
  • 支持自定义下载参数,如并发数、保存路径等
  • 完全基于命令行,可集成到其他自动化工作流中

准备工作

在开始编写脚本之前,需要确保你已经正确安装和配置了BaiduPCS-Go。

安装BaiduPCS-Go

  1. 从项目仓库克隆或下载最新版本的BaiduPCS-Go:
git clone https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go.git
  1. 根据你的操作系统,编译或直接使用预编译的可执行文件。详细编译说明请参考项目文档中的编译/交叉编译说明

登录百度账号

使用以下命令登录百度账号,支持多种登录方式:

# 使用BDUSS和STOKEN登录(推荐)
BaiduPCS-Go login -bduss=<你的BDUSS> -stoken=<你的STOKEN>

# 或使用Cookies登录
BaiduPCS-Go login -cookies=<你的Cookies>

关于如何获取BDUSS和STOKEN,请参考项目文档中的登录百度帐号部分。

批量转存脚本编写

单个链接转存命令

BaiduPCS-Go提供了transfer命令用于转存分享链接,基本语法如下:

BaiduPCS-Go transfer <分享链接> <提取码>

例如:

BaiduPCS-Go transfer https://pan.baidu.com/s/12L_ZZVNxz5f_2CccoyyVrW edv4

批量转存脚本

下面是一个简单的批量转存脚本,它可以读取包含多个分享链接和提取码的文本文件,并逐个进行转存。

#!/bin/bash

# 批量转存脚本
# 用法: ./batch_transfer.sh links.txt

# 检查参数
if [ $# -ne 1 ]; then
    echo "用法: $0 <链接文件>"
    exit 1
fi

# 读取链接文件并处理
while IFS= read -r line; do
    # 跳过空行和注释行
    if [ -z "$line" ] || [[ "$line" =~ ^# ]]; then
        continue
    fi
    
    # 分割链接和提取码(假设格式为"链接 提取码")
    LINK=$(echo "$line" | awk '{print $1}')
    CODE=$(echo "$line" | awk '{print $2}')
    
    echo "正在转存: $LINK"
    
    # 调用BaiduPCS-Go进行转存
    BaiduPCS-Go transfer "$LINK" "$CODE"
    
    # 检查转存是否成功
    if [ $? -eq 0 ]; then
        echo "转存成功: $LINK"
    else
        echo "转存失败: $LINK" >> transfer_failed.txt
    fi
    
    # 添加延迟,避免请求过于频繁
    sleep 2
done < "$1"

echo "批量转存完成,失败的链接已保存到transfer_failed.txt"

链接文件格式

链接文件应包含多个分享链接及其对应的提取码,每行一个链接,格式如下:

https://pan.baidu.com/s/12L_ZZVNxz5f_2CccoyyVrW edv4
https://pan.baidu.com/s/3jF3kL2mN5pQ7rT9sU0vX2yZ4 edf5
# 这是一条注释,会被忽略
https://pan.baidu.com/s/5hJ6kM7nO8pQ9rS0tU1vW2xY3 abc7

自动下载脚本编写

基本下载命令

BaiduPCS-Go提供了download(或简写为d)命令用于下载文件,基本语法如下:

BaiduPCS-Go download <网盘文件路径> [可选参数]

例如:

# 下载单个文件
BaiduPCS-Go d /我的资源/视频.mp4

# 下载整个目录
BaiduPCS-Go d /我的资源

# 设置下载并发数和保存路径
BaiduPCS-Go d -p 5 --saveto /home/user/downloads /我的资源

自动下载脚本

下面的脚本可以监控指定的网盘目录,当有新文件转存到该目录时,自动开始下载。

#!/bin/bash

# 自动下载脚本
# 监控指定目录,当有新文件时自动下载

# 配置
WATCH_DIR="/我的资源/自动下载"  # 要监控的网盘目录
LOCAL_SAVE_DIR="/home/user/downloads"  # 本地保存目录
CHECK_INTERVAL=300  # 检查间隔(秒)
LOG_FILE="auto_download.log"

# 确保日志文件存在
touch $LOG_FILE

echo "[$(date)] 自动下载脚本启动,监控目录: $WATCH_DIR" >> $LOG_FILE

# 获取初始文件列表
initial_files=$(BaiduPCS-Go ls -l "$WATCH_DIR" | awk '{print $9}' | grep -v '^$')

while true; do
    # 获取当前文件列表
    current_files=$(BaiduPCS-Go ls -l "$WATCH_DIR" | awk '{print $9}' | grep -v '^$')
    
    # 找出新增的文件
    new_files=$(comm -13 <(echo "$initial_files" | sort) <(echo "$current_files" | sort))
    
    if [ -n "$new_files" ]; then
        echo "[$(date)] 发现新文件: $new_files" >> $LOG_FILE
        
        # 下载新增文件
        for file in $new_files; do
            file_path="$WATCH_DIR/$file"
            echo "[$(date)] 开始下载: $file_path" >> $LOG_FILE
            
            # 执行下载命令
            BaiduPCS-Go download --saveto "$LOCAL_SAVE_DIR" "$file_path"
            
            # 检查下载是否成功
            if [ $? -eq 0 ]; then
                echo "[$(date)] 下载成功: $file_path" >> $LOG_FILE
                # 可选:下载成功后删除网盘文件
                # BaiduPCS-Go rm "$file_path"
            else
                echo "[$(date)] 下载失败: $file_path" >> $LOG_FILE
            fi
        done
        
        # 更新初始文件列表
        initial_files=$current_files
    fi
    
    # 等待下一次检查
    sleep $CHECK_INTERVAL
done

自定义下载参数

你可以根据需要修改下载命令,添加自定义参数。例如:

# 设置下载并发数为8,覆盖已存在文件
BaiduPCS-Go download -p 8 --ow --saveto "$LOCAL_SAVE_DIR" "$file_path"

# 使用locate模式下载,设置最大重试次数
BaiduPCS-Go download --mode locate --retry 3 --saveto "$LOCAL_SAVE_DIR" "$file_path"

更多下载参数可通过BaiduPCS-Go download -h命令查看,或参考项目文档中的下载文件/目录部分。

结合批量转存与自动下载

将前面介绍的批量转存脚本和自动下载脚本结合起来,可以实现从分享链接到本地文件的全自动化流程。

工作流程

  1. 使用批量转存脚本将多个分享链接转存到网盘的指定目录(如/我的资源/自动下载
  2. 自动下载脚本监控该目录,当发现新文件时自动开始下载
  3. 下载完成后可选择删除网盘文件以节省空间

组合脚本示例

#!/bin/bash

# 批量转存并自动下载组合脚本

# 配置
LINKS_FILE="links.txt"  # 包含分享链接的文件
WATCH_DIR="/我的资源/自动下载"  # 转存目标目录
TRANSFER_SCRIPT="./batch_transfer.sh"
DOWNLOAD_SCRIPT="./auto_download.sh"

# 1. 切换到监控目录
BaiduPCS-Go cd "$WATCH_DIR"

# 2. 执行批量转存
echo "开始批量转存..."
$TRANSFER_SCRIPT $LINKS_FILE

# 3. 启动自动下载监控
echo "启动自动下载监控..."
$DOWNLOAD_SCRIPT &

# 记录PID,以便后续停止
DOWNLOAD_PID=$!
echo "自动下载进程PID: $DOWNLOAD_PID"
echo $DOWNLOAD_PID > download_pid.txt

# 4. 等待所有下载完成(这里设置超时时间为24小时)
echo "等待下载完成..."
timeout 86400 tail -f auto_download.log

# 5. 停止自动下载监控
echo "停止自动下载监控..."
kill $DOWNLOAD_PID
rm download_pid.txt

echo "所有操作完成!"

高级配置与优化

配置下载参数

BaiduPCS-Go允许通过配置命令修改默认的下载参数,如并发数、缓存大小等。例如:

# 显示当前配置
BaiduPCS-Go config

# 设置下载最大并发量为10
BaiduPCS-Go config set -max_parallel 10

# 设置下载缓存大小为64MB
BaiduPCS-Go config set -cache_size 64MB

# 设置默认下载保存路径
BaiduPCS-Go config set -savedir /home/user/downloads

详细的配置说明请参考项目文档中的显示和修改程序配置项部分。

处理特殊情况

在实际使用中,可能会遇到各种特殊情况,如网络中断、提取码错误、文件已被删除等。以下是一些处理这些情况的建议:

  1. 网络中断:在脚本中添加重试机制,当检测到网络错误时自动重试。
  2. 提取码错误:将提取码错误的链接保存到单独的文件,以便手动处理。
  3. 文件已被删除:跳过此类链接并记录日志。
  4. 下载速度慢:调整并发数或使用不同的下载模式(如locate模式)。

性能优化

为了获得更好的性能,可以考虑以下优化措施:

  1. 合理设置并发数:普通用户建议设置较低的并发数(如1-2),SVIP用户可适当提高(如10-20)。
  2. 分散请求时间:在批量操作中添加适当的延迟,避免因请求过于频繁而被限制。
  3. 选择合适的下载模式:根据文件大小和网络情况选择合适的下载模式(pcsstreamlocate)。
  4. 定期清理缓存:定期清理下载缓存可以释放磁盘空间,提高性能。

常见问题与解决方法

转存失败的常见原因

  1. 提取码错误:请检查链接对应的提取码是否正确。
  2. 链接已失效:分享链接可能已被取消或过期。
  3. 文件已被删除:原分享者可能已删除文件。
  4. 请求过于频繁:百度网盘可能会限制频繁的转存请求,建议增加请求间隔。

下载速度慢的解决方法

  1. 调整并发数:根据你的网络状况和账号类型(普通用户/SVIP)调整合适的并发数。
  2. 更换下载模式:尝试使用不同的下载模式,如:
    # 使用locate模式下载
    BaiduPCS-Go d --mode locate /我的资源/文件.zip
    
  3. 检查网络连接:确保你的网络连接稳定。
  4. 避开高峰期:尝试在非高峰时段下载大文件。

脚本运行权限问题

如果遇到"权限不足"的错误,请确保脚本具有可执行权限:

chmod +x batch_transfer.sh auto_download.sh

总结与展望

通过本文介绍的方法,你可以轻松实现百度网盘分享链接的批量转存和自动下载。这些脚本可以根据你的具体需求进行修改和扩展,例如添加邮件通知功能、集成到NAS系统中,或者与其他自动化工具结合使用。

BaiduPCS-Go项目仍在持续开发中,未来可能会添加更多有用的功能。建议定期查看项目的版本更新部分,以获取最新的功能和改进信息。

如果你有任何问题或建议,欢迎通过项目的交流反馈渠道提出。祝你使用愉快!

相关资源

【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 【免费下载链接】BaiduPCS-Go 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值