Skip to main content

Download audio from youtube-dl soures and import into beets

Project description

# beets ydl

Download audio from youtube-dl sources and import into beets

$ beet ydl "https://www.youtube.com/watch?v=wW6ykueIhX8"

$ beet ls short music for short people

59 Times the Pain - Short Music for Short People - We Want the Kids
7 Seconds - Short Music for Short People - F.O.F.O.D.
88 Fingers Louie - Short Music for Short People - All My Friends Are in Popular Bands
Adrenalin O.D. - Short Music for Short People - Your Kung Fu Is Old... And Now You Must Die!
Aerobitch - Short Music for Short People - Steamroller Blues
[...]

## Installation

pip install https://github.com/vmassuchetto/beets-ydl

And enable `ydl` plugin on your `config.yaml` file.

## Configuration

Available options on `config.yaml`:

- `download`: will download files from sources after getting information,
defaults to `True`

- `split_files`: will try to split album files into separate tracks, defaults
to `True`

- `import`: will import files on youtube-dl after downloading and splitting,
defaults to `True`

- `urls`: a list of default urls to download when no arguments are provided, you
can provide a playlist to get checked every time

- `youtubedl_options` is a dictionary of
[a lot of youtube-dl options available](https://git.io/fN0c7)

Example:

```yaml
plugins: ydl

ydl:
split_files: true
urls:
- url1
- url2
- url3
youtubedl_options:
postprocessors:
key': 'SomeOtherExtractor',
preferredcodec: 'ogg'
```
## Tips

### Use a `.netrc` file

Security discussions apart, you can create a `~/.netrc` with credentials for
youtube-dl to read.

machine youtube login somelogin@gmail.com password somepassword

Check [this entry](https://git.io/fN2TD) on youtube-dl docs for more
information.

Like this, you can download private playlists or your subscriptions:

beet ydl "https://www.youtube.com/feed/subscriptions"

### Download and import later

To download and split files without importing into beets:

beet ydl "<source>" --keep-files --no-import

And later, to import:

beet ydl "<source>" --no-download --no-split-files

Like this, you can download a big playlist and then run the beets import
routine, which requires manual intervention.

### (possibly) enhance audio quality

beets-ydl uses a proposed [192kbps extractor 'bestaudio'](https://git.io/fN2mJ)
format because it is more likely that it will find separate audio files on
sources. Some high quality videos might have better audio quality embedded, so
it can also make sense to set a higher quality extractor:

```yaml
ydl:
youtubedl_options:
format: 'best',
postprocessors:
key: 'FFmpegExtractAudio'
preferredcodec: 'mp3'
preferredquality: '320'
nopostoverwrites: True
```

This can, however, end-up with unnecessarily big files that have 320kbps as a
merely nominal quality. See [this discussion](https://askubuntu.com/q/634584).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beets-ydl-0.0.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

beets_ydl-0.0.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file beets-ydl-0.0.2.tar.gz.

File metadata

  • Download URL: beets-ydl-0.0.2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for beets-ydl-0.0.2.tar.gz
Algorithm Hash digest
SHA256 57d9d5e7b00fdbabeece32339e16df55a823343adf9184bad5396b420ec740ca
MD5 0c38528d0b94d71dde37e766d44d6051
BLAKE2b-256 029a7128f9593288d4133006165e8acce6f1bfb0f66b297e893b77e9447bf5a6

See more details on using hashes here.

File details

Details for the file beets_ydl-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: beets_ydl-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for beets_ydl-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f663bff73d0b29eb2f8d762cf7858d8bd952177df218409e1e09626322eab7f
MD5 c068c80f553832a8838daf7c43d8fb61
BLAKE2b-256 8bbf43d2fe7dc837c1b23fede0c78e5bea82bc79a2e1354d6e1fa4866bf46878

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page