7 releases (4 breaking)
new 0.6.0 | Jan 16, 2025 |
---|---|
0.5.0 | Dec 20, 2024 |
0.4.0 | Nov 10, 2024 |
0.3.0 | Oct 28, 2024 |
0.2.0 | Aug 18, 2024 |
#44 in Multimedia
118 downloads per month
1.5MB
32K
SLoC
CLI
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.
releases
Get YouTube Music new releases
Get a list of new albums or music videos on YouTube Music
Usage: rustypipe releases
or rustypipe releases --videos
charts
: Get YouTube Music charts
Get a list of the most popular tracks and artists for a given country
Usage: rustypipe charts DE
history
: Get YouTube playback history
Get a list of recently played videos or tracks
Options
-l
,--limit
Limit the number of list items to fetch--search
Search the playback history (unavailable on YouTube Music)-m
,--music
Get the YouTube Music playback history
subscriptions
: Get subscribed channels
You can use the RustyPipe CLI to get a list of the channels you subscribed to. With the
--format
flag you can export then in different formats, including OPML and NewPipe
JSON.
With the --feed
option you can output a list of the latest videos from your
subscription feed instead.
Options
-l
,--limit
Limit the number of list items to fetch-m
,--music
Get a list of subscribed YouTube Music artists--feed
Output YouTube Music subscription feed
playlists
, albums
, tracks
: Get your YouTube library
Fetch a list of all the items saved in your YouTube/YouTube Music profile.
Options
-l
,--limit
Limit the number of list items to fetch-m
,--music
(only for playlists): Get your YouTube Music playlists
Global options
- Proxy: RustyPipe respects the environment variables
HTTP_PROXY
,HTTPS_PROXY
andALL_PROXY
- Logging: You can change the log level with the
RUST_LOG
environment variable, it is set toinfo
by default - Visitor data: A custom visitor data cookie can be used with the
--vdata
flag - Authentication: Use the commands
rustypipe login
andrustypipe login --cookie
to log into your Google account using either OAuth or YouTube cookies. With the--auth
flag you can use authentication for any request. --lang
Change the YouTube content language--country
Change the YouTube content country--report
Generate a report on every request and store it in arustypipe_reports
folder in the current directory--cache-file
Change the RustyPipe cache file location (Default:~/.local/share/rustypipe/rustypipe_cache.json
)--report-dir
Change the RustyPipe report directory location (Default:~/.local/share/rustypipe/rustypipe_reports
)
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.
Dependencies
~43–61MB
~1M SLoC