Back up your favorite bilibili resources with CLI.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Back up your favorite bilibili online resources with CLI.
You can download the release here.
For Arch Linux users, you can yay -S fav-git
maybe, someone has maken it a package.
Or you can compile by yourself:
- Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Clone the repo
git clone https://github.com/kingwingfly/fav.git
- Compilation
cargo build --release
Need ffmpeg
usable, and able to be directly called in cli.
Fav's CLI, helping persist the remote source. Repo: https://github.com/kingwingfly/fav
Usage: fav [OPTIONS] <COMMAND>
Commands:
init Initialize the folder for fav
auth Login your account
fetch Fetch from remote
status Show status of local, default to show sets' status
track Track a remote source
untrack Untrack a remote source
pull Pull remote resource to local. If no id provided, then pull all and skip those having been saved
daemon Interval fetch and pull
completion Completions for the shell
help Print this message or the help of the given subcommand(s)
Options:
-d, --working-dir <WORKING_DIR> [default: /Users/louis]
-h, --help Print help
-V, --version Print version
- Init and Login first
- Fetch the favorite sets(lists)
- Track the list_id you want. You can see them through
fav status -s
- Fetch tracked resources
- Pull the resources
# auto completion is supported; e.g. fish
$ fav completion fish > ~/.config/fish/completions/fav.fish
# For Windows users
$ echo "fav completion powershell | Out-String | Invoke-Expression" >> $PROFILE
# init for bilibili
$ fav init
# scan code to login
$ fav auth login
# a fetch will auto run after login
# show status
$ fav status -s
# track list
$ fav track <list_id>
# fetch and pull videos
$ fav pull
# untrack list or video
$ fav untrack <list_id/bvid>
# daemon, run `fav pull` every 30 minutes
$ fav daemon 30
# after fetching, you can find your favorite upper
$ fav status -r | awk -F '│' '{print $3}' | grep -v '^\s*$' | sort | uniq -c | sort -n
Service example:
# fav.service
[Unit]
Description=Fav Daemon Service
After=network-online.target
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/fav_set
ExecStart=/usr/local/bin/fav daemon 180
Restart=on-failure
[Install]
WantedBy=multi-user.target
For more examples, please refer to the Documentation
- Init
- Auth
- Fetch
- Status
- Track
- Untrack
- Pull
- Dynamic completion
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. Moreover, it is recommended to open an issue before coding to avoid repeated and useless work.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
Distributed under the MIT License. See LICENSE.txt
for more information.
Louis - [email protected]
Project Link: https://github.com/kingwingfly/fav