8 个版本
0.4.0 | 2021年9月5日 |
---|---|
0.3.3 | 2021年6月24日 |
0.3.2 | 2021年3月19日 |
0.3.1 | 2021年2月20日 |
0.2.3 | 2021年1月9日 |
#2659 in 命令行工具
28 个每月下载
65KB
1K SLoC
Reddsaver
- 从 Reddit 下载保存/点赞的媒体内容的命令行工具
- 支持
- Reddit:PNG/JPG 图像、GIF、图片画廊、视频
- Giphy:GIF
- Imgur:直接图像和 GIFV
- Gfycat/Redgifs:GIF
- 来自 Imgur/Gfycat/Redgifs 的 GIF/GIFV 下载为 mp4
- 不支持从 Imgur 帖子链接下载图像
安装
先决条件
要下载由 Reddit 托管的视频,您需要安装 ffmpeg。请遵循此 链接 以获取安装说明。
推荐方法
您可以从此处下载发布版二进制文件 这里
其他方法
使用 MacPorts
如果您是 macOS 上的 macports 用户,可以使用 port
安装 reddsaver
sudo port selfudpate
sudo port install reddsaver
使用 Homebrew
如果您是 macOS 上的 homebrew 用户,可以使用 brew tap
安装
brew tap manojkarthick/reddsaver
brew install reddsaver
Arch Linux
如果您是 ArchLinux 用户,则可以使用 yay
或 paru
等工具从 AUR 安装它
yay -S reddsaver
使用 cargo
如果您已安装 Rust,您也可以使用 cargo
安装
cargo install reddsaver
使用 nix
如果您是 nix 用户,您可以从 nixpkgs 安装 reddsaver
nix-env --install reddsaver
或,如果您使用 home-manager 管理您的安装,请将其添加到您的 home.packages
home.packages = [
pkgs.reddsaver
];
从源码构建和运行
请确保您的机器上已安装 rustc v1.50.0
和 cargo。
git clone https://github.com/manojkarthick/reddsaver.git
cargo build --release
./target/release/reddsaver
Docker 支持
预构建的Docker镜像可在Docker Hub上找到。
mkdir -pv data/
docker run --rm \
--volume="$PWD/data:/app/data" \
--volume="$PWD/reddsaver.env:/app/reddsaver.env" \
manojkarthick/reddsaver:latest -d /app/data -e /app/reddsaver.env
运行
- 在https://www.reddit.com/prefs/apps创建一个新的脚本应用程序
- 点击页面底部的“创建应用”
- 为您的应用程序输入一个名称,例如:-reddsaver
- 选择“脚本”作为应用程序类型
- 设置重定向URL为"https://127.0.0.1:8080"或任何其他URL
- 点击“创建应用” - 现在您应该看到已经创建了应用程序
- 在您的应用程序名称下,您应该看到一个随机字符串 - 那就是您的客户端ID
- 字段“密钥”旁边的随机字符串是您的客户端密钥
- 复制返回的客户端ID和客户端密钥信息
- 创建一个包含以下键的.env文件,例如
reddsaver.env
CLIENT_ID="<client_id>"
CLIENT_SECRET="<client_secret>"
USERNAME="<username>"
PASSWORD="<password>"
注意:如果您启用了双因素认证,请确保您设置PASSWORD=<password>:<2FA_TOTP_token>
代替
- 运行应用程序!
# Create a directory to save your images to
mkdir -pv reddsaver/
# Check if you installation is working properly
reddsaver --help
# Check if the right configuration has been picked up
# NOTE: In case the `USERNAME` variable is being overriden by
# your system username, please use
# On Linux/Mac - unset USERNAME
# On Windows - set USERNAME=
# before running to temporarily remove the system username
# from your environment
reddsaver -e reddsaver.env -d reddsaver --show-config
# Run the app to download the saved media
reddsaver -e reddsaver.env -d reddsaver
# Also allows you to download upvoted media
reddsaver -e reddsaver.env -d reddsaver --upvoted
注意:在第一次运行应用程序之外运行时,如果您使用目录作为初始运行,应用程序将跳过已下载的镜像的下载。
在此处查看其运行情况
描述和命令行参数
可选地覆盖保存目录和读取env文件值的设置
ReddSaver 0.4.0
Manoj Karthick Selva Kumar
Simple CLI tool to download saved media from Reddit
USAGE:
reddsaver [FLAGS] [OPTIONS]
FLAGS:
-r, --dry-run Dry run and print the URLs of saved media to download
-h, --help Prints help information
-H, --human-readable Use human readable names for files
-s, --show-config Show the current config being used
-U, --undo Unsave or remote upvote for post after processing
-u, --upvoted Download media from upvoted posts
-V, --version Prints version information
OPTIONS:
-d, --data-dir <DATA_DIR> Directory to save the media to [default: data]
-e, --from-env <ENV_FILE> Set a custom .env style file with secrets [default: .env]
-S, --subreddits <SUBREDDITS>... Download media from these subreddits only
一些需要注意的点
- 默认情况下,reddsaver使用URL的MD5哈希值生成图像文件名。您可以使用
--human-readable
标志生成可读的名称。 - 您可以使用
--show-config
标志检查ReddSaver使用的配置。
其他信息
为Raspberry Pi Zero W构建
为了为树莓派交叉编译,此项目使用rust-cross。请确保您在开发机器上安装了Docker。
- 构建rust-cross的Docker镜像:
docker build -t rust-rpi-zerow:v1-openssl -f Dockerfile.raspberrypizerow .
- 请确保此处使用的镜像名称与您的
Cross.toml
配置中的镜像名称匹配 - 运行
cross build --target arm-unknown-linux-gnueabi --release
来构建项目 - 您可以在
target/arm-unknown-linux-gnueabi/release/
下找到编译后的二进制文件
依赖关系
~13–27MB
~426K SLoC