94 lines
4.1 KiB
Markdown
94 lines
4.1 KiB
Markdown
# ![RustyPipe](https://codeberg.org/ThetaDev/rustypipe/raw/branch/main/notes/logo.svg) CLI
|
|
|
|
[![Current crates.io version](https://img.shields.io/crates/v/rustypipe-cli.svg)](https://crates.io/crates/rustypipe-cli)
|
|
[![License](https://img.shields.io/badge/License-GPL--3-blue.svg?style=flat)](http://opensource.org/licenses/GPL-3.0)
|
|
[![CI status](https://codeberg.org/ThetaDev/rustypipe/actions/workflows/ci.yaml/badge.svg?style=flat&label=CI)](https://codeberg.org/ThetaDev/rustypipe/actions/?workflow=ci.yaml)
|
|
|
|
The RustyPipe CLI is a powerful YouTube client for the command line. It allows you to
|
|
access most of the features of the RustyPipe crate: getting data from YouTube and
|
|
downloading videos.
|
|
|
|
The following subcommands are included:
|
|
|
|
## `get`: Fetch information
|
|
|
|
You can call the get command with any YouTube entity ID or URL and RustyPipe will fetch
|
|
the associated metadata. It can fetch channels, playlists, albums and videos.
|
|
|
|
**Usage:** `rustypipe get UC2TXq_t06Hjdr2g_KdKpHQg`
|
|
|
|
- `-l`, `--limit` Limit the number of list items to fetch
|
|
- ``-t, --tab` Channel tab (options: **videos**, shorts, live, playlists, info)
|
|
- `-m, --music` Use the YouTube Music API
|
|
- `--rss`Fetch the RSS feed of a channel
|
|
- `--comments` Get comments (options: top, latest)
|
|
- `--lyrics` Get the lyrics for YTM tracks
|
|
- `--player` Get the player data instead of the video details when fetching videos
|
|
- `-c, --client-type` YT clients used to fetch player data (options: desktop, tv,
|
|
tv-embed, android, ios; if multiple clients are specified, they are attempted in
|
|
order)
|
|
|
|
## `search`: Search YouTube
|
|
|
|
With the search command you can search the entire YouTube platform or individual
|
|
channels. YouTube Music search is also supported.
|
|
|
|
Note that search filters are only supported when searching YouTube. They have no effect
|
|
when searching YTM or individual channels.
|
|
|
|
**Usage:** `rustypipe search "query"`
|
|
|
|
### Options
|
|
|
|
- `-l`, `--limit` Limit the number of list items to fetch
|
|
|
|
- `--item-type` Filter results by item type
|
|
- `--length` Filter results by video length
|
|
- `--date` Filter results by upload date (options: hour, day, week, month, year)
|
|
- `--order` Sort search results (options: rating, date, views)
|
|
- `--channel` Channel ID for searching channel videos
|
|
- `-m, --music` Search YouTube Music in the given category (options: all, tracks,
|
|
videos, artists, albums, playlists-ytm, playlists-community)
|
|
|
|
## `dl`: Download videos
|
|
|
|
The downloader can download individual videos, playlists, albums and channels. Multiple
|
|
videos can be downloaded in parallel for improved performance.
|
|
|
|
**Usage:** `rustypipe dl eRsGyueVLvQ`
|
|
|
|
### Options
|
|
|
|
- `-o`, `--output` Download to the given directory
|
|
- `--output-file` Download to the given file
|
|
- `--template` Download to a path determined by a template
|
|
|
|
- `-r`, `--resolution` Video resolution (e.g. 720, 1080). Set to 0 for audio-only
|
|
- `-a`, `--audio` Download only the audio track and write track metadata + album cover
|
|
- `-p`, `--parallel` Number of videos downloaded in parallel (default: 8)
|
|
- `-m, --music` Use YouTube Music for downloading playlists
|
|
- `-l`, `--limit` Limit the number of videos to download (default: 1000)
|
|
- `-c`, `--client-type` YT clients used to fetch player data (options: desktop, tv,
|
|
tv-embed, android, ios; if multiple clients are specified, they are attempted in
|
|
order)
|
|
- `--pot` token to circumvent bot detection
|
|
|
|
## `vdata`: Get visitor data
|
|
|
|
You can use the vdata command to get a new visitor data cookie. This feature may come in
|
|
handy for testing and reproducing A/B tests.
|
|
|
|
## Global options
|
|
|
|
- **Proxy:** RustyPipe respects the environment variables `HTTP_PROXY`, `HTTPS_PROXY`
|
|
and `ALL_PROXY`
|
|
- **Logging:** You can change the log level with the `RUST_LOG` environment variable, it
|
|
is set to `info` by default
|
|
- **Visitor data:** A custom visitor data cookie can be used with the `--vdata` flag
|
|
- `--report`
|
|
|
|
### Output format
|
|
|
|
By default, the CLI outputs YouTube data in a human-readable text format. If you want to
|
|
store the data or process it with a script, you should choose a machine readable output
|
|
format. You can choose both JSON and YAML with the `-f, --format` flag.
|