![Crates.io](https://img.shields.io/crates/d/blob-dl?color=%2325BE5D)
![GitHub](https://img.shields.io/badge/license-MIT-blue)
![GitHub issues](https://img.shields.io/github/issues/MicheleCioccarelli/blob-dl)
![Crates.io](https://img.shields.io/crates/v/blob-dl)
blob-dl
`blob-dl` is a command line tool used to download video and audio files from YouTube. It acts as an interface to [`yt-dlp`](https://github.com/yt-dlp/yt-dlp) and works by asking a series of questions that make it generate and then execute a `yt-dlp` command that fits your needs.
The idea behind this program is to remove all the tedious work of researching which flags you need to pass to `yt-dlp` to make it do what you want.
When you use blob-dl you only need to know the url of what you want to download, and it'll figure out the rest.
- See the [Features](https://github.com/MicheleCioccarelli/blob-dl#features) section for more details on what `blob-dl` can do
[![asciicast](https://asciinema.org/a/jZUokSc5oDms6vICdNTic1vxh.svg)](https://asciinema.org/a/jZUokSc5oDms6vICdNTic1vxh)
# Installation
The most straightforward way to install `blob-dl` is to use [the binaries](https://github.com/MicheleCioccarelli/blob-dl/releases/)
Alternatively, if you are a Rust programmer you can install `blob-dl` with `cargo`
```
$ cargo install blob-dl
```
## Dependencies
`blob-dl` depends on `yt-dlp`, you can install it by following the official [guide](https://github.com/yt-dlp/yt-dlp#installation).
You should also install `yt-dlp`'s [recommended dependencies](https://github.com/yt-dlp/yt-dlp#dependencies) to access all of `blob-dl`'s features (namely `ffmpeg` and `ffprobe`).
# Usage
To use `blob-dl` you just have to pass it the url of the video or playlist that you want to download, the program will understand by itself what the link refers to and ask you questions accordingly.
The first one is `What kind of file(s) do you want to download?`
The answer you choose determines which download formats you can pick later on: For example, if you answer that you want to download audio-only files, then formats containing video will be hidden. In this readme, statements about downloading `video`s also apply to audio-only downloads
The second question `Which quality or format do you want to apply to the video?` allows you to choose a specific format, quality, filesize, ...
The available answers mean these things:
- `Best possible quality` tells yt-dlp to automatically choose the `best` quality, for more information see `yt-dlp`'s [wiki](https://github.com/yt-dlp/yt-dlp#format-selection)
- `Smallest file size` uses the format which results in the smallest file size
- `Choose a format to recode the video to` is only available if ffmpeg is installed: After the video is downloaded, it can be converted to a file format of your choosing
- `Choose a format to download the video in` doesn't require ffmpeg: it shows a list of formats directly available for download from YouTube without needing to convert anything, but the choice is rather limited
`blob-dl` will ask further questions, but they are self-explanatory
# Features
### Format conversion
`blob-dl` was designed to download large song playlists directly as audio files. Choosing between downloading audio files, normal video files or video-only files is very easy
### Playlist Download
With `blob-dl` you can download whole playlists in one go, you can also choose a single file format to apply to all videos
### Error tracking
While downloading, `blob-dl` keeps track of any errors thrown by yt-dlp and reports them at the end, the ones caused which can be resolved by re-trying the download can be easily re-downloaded
# Q&A
### Who is this for?
This program is intended for anyone who wants to download things from YouTube without having to remember yt-dlp's syntax. `blob-dl` can do everything an average user needs but with less hassle
`yt-dlp` power users with advanced needs probably won't find this program useful.
### Why did I make this?
Have you ever had to download videos from YouTube?
The process can be quite a pain because you will have to either spend your time closing pop-ups from a sketchy website or browsing through [`yt-dlp`](https://github.com/yt-dlp/yt-dlp)'s documentation.
I was tired of spending hours downloading music videos and converting them to audio, so I wrote this program to make everything way easier
## Notes
This logo was inspired by [@Primer](https://www.youtube.com/c/PrimerLearning)'s [blob plushie](https://store.dftba.com/collections/primer/products/primer-blob-plushie)