All Projects → uriel1998 → yolo-mpd

uriel1998 / yolo-mpd

Licence: MIT license
Various music-related tweaks/tips/scripts. Includes fuzzy selection of artist/genre/album script and albumart in the console script

Programming Languages

shell
77523 projects

Labels

Projects that are alternatives of or similar to yolo-mpd

Playerctl
🎧 mpris media player command-line controller for vlc, mpv, RhythmBox, web browsers, cmus, mpd, spotify and others.
Stars: ✭ 1,365 (+2630%)
Mutual labels:  mpd
Fzf Scripts
a collection of scripts that rely on https://github.com/junegunn/fzf
Stars: ✭ 158 (+216%)
Mutual labels:  mpd
simple-mpc
A GNU Emacs frontend to mpc.
Stars: ✭ 38 (-24%)
Mutual labels:  mpd
Mpdas
MPD AudioScrobbler written in C++ using libcurl
Stars: ✭ 101 (+102%)
Mutual labels:  mpd
Vimus
An MPD client with vim-like key bindings, written in Haskell
Stars: ✭ 129 (+158%)
Mutual labels:  mpd
Pms
Practical Music Search is an interactive Vim-like console client for the Music Player Daemon.
Stars: ✭ 182 (+264%)
Mutual labels:  mpd
Dotfiles
My dotfiles managed by GNU Stow - Arch, i3-gaps, bspwm, ncmpcpp, (neo)vim, zsh etc.
Stars: ✭ 99 (+98%)
Mutual labels:  mpd
ymuse
GTK client for Music Player Daemon (MPD) written in Go
Stars: ✭ 193 (+286%)
Mutual labels:  mpd
So Nice
Small Web interface to control iTunes, Spotify, Rdio, MPD, Rhythmbox, Amarok and XMMS2. ♫
Stars: ✭ 141 (+182%)
Mutual labels:  mpd
Kunst
Download and display album art or display embedded album art
Stars: ✭ 242 (+384%)
Mutual labels:  mpd
Dotfiles
If there is a shell, there is a way!
Stars: ✭ 112 (+124%)
Mutual labels:  mpd
Deezer Downloader
Download music from Deezer with a nice front end
Stars: ✭ 127 (+154%)
Mutual labels:  mpd
Boombeastic
A Raspberry Pi based smart connected speaker with support for airplay, spotify, mpd and local playback
Stars: ✭ 195 (+290%)
Mutual labels:  mpd
My dotfiles
Just a collections of my dotfiles...
Stars: ✭ 101 (+102%)
Mutual labels:  mpd
thirtytwopixels
🖼️ wireless LED album art display for spotify, mpd+ncmpcpp and other players.
Stars: ✭ 46 (-8%)
Mutual labels:  mpd
Dots
A Repository For Config Files / Dotfiles / Themes / Color Schemes / Etc...
Stars: ✭ 100 (+100%)
Mutual labels:  mpd
Clerk
clerk - mpd client, based on rofi/fzf
Stars: ✭ 180 (+260%)
Mutual labels:  mpd
ashuffle
Automatic library-wide shuffle for mpd.
Stars: ✭ 64 (+28%)
Mutual labels:  mpd
mothership
A music player interface
Stars: ✭ 25 (-50%)
Mutual labels:  mpd
Dotfiles
My vim, zsh, tmux, and macOS dotfiles
Stars: ✭ 209 (+318%)
Mutual labels:  mpd

yolo-mpd

Various MP3 and MPD tweaks, tips, tools, and scripts I've put together or found and tweaked.

Contents

  1. stream_to_mpd

  2. ffixer

  3. mp3-date-to-year.sh

  4. ffixer-covers

  5. mpdcontrol.sh

  6. terminal-multiplexer

  7. bpmhelper

  8. mp3gainhelper

  9. webserver.covers.sh

  10. terminalcovers.sh

  11. mediakey.sh

stream_to_mpd

Dependencies:

  • streamlink
  • grep, awk,curl,wget, and zenity, all likely included in your distro packaging.

Feed this utility a stream (including anything streamlink can handle, such as twitch music streamers) and it will pipe it through to your MPD server or save the stream URL in a file (such as an MPD playlist). Uses zenity for gui dialogs if you do not specify elements on the commandline. Originally inspired by this blog post

Usage: stream_to_mpd [OPTIONS] [STREAM_URL]

--host PASSWORD@HOST: Needed if your MPD server is not on localhost or you have a password set
--mpd : skip right to MPD output
--playlist : skip right to adding stream URL to a file/playlist
--native : Throw the result to streamlink (probably not needed, but hey)
--bookmarks : use zenity to choose a hardcoded bookmark instead of a stream URL

ffixer

Dependencies:

  • eye3D
  • grep command-line tool. grep can be found in the grep package on major Linux distributions.
  • sed command-line tool. sed can be found in the sed package on major Linux distributions.

This utility does a few things automatically that I like to keep my collection in order.

First, it finds MP3 files that have song titles like "Scratches All Down My Back (Buckcherry vs.Toto)" and moves the artists that are in the parentheses or brackets to the "Album Artist" field. Searches recursively from the directory you run it in, and stores a CSV of changes made in your $HOME directory. Use --dryrun as an option first if you like.

Second, it fills in the album artist and composer fields if they are empty, preferentially using the artist tag. I like this because different music players sort "artists" using different fields.

Third, it standardizes all the "date" fields (release date, original release date, and recording date) to YYYY only and fills in any empty fields.

Finally, it does all this while preserving the original file modification time so that your collection isn't a flying mess of "new" tracks.

mp3-date-to-year.sh

Dependencies:

A simple script that only changes the date fields (release date, original release date, recording date) to just the year field if they exist.

ffixer_covers

This script walks recursively from the directory it starts from and ensures there are both cover.jpg and folder.jpg files. If none exists in the directory, it attempts to extract them from the ID3 tags using eyeD3.

It will also attempt (if not found in any of the above) to find a cover on the interwebs using sacad

Dependencies:

mpdcontrol.sh

Select whether you want to choose a playlist, or by album, artist, or genre. Clears playlist, adds what you chose, starts playing. The SSH version is for exactly that, especially if you don't have pick on that machine.

Optionally, if fzf is installed on the system, it will seamlessly substitute that program in, with the option to select multiple entries at once (use TAB).

The mpdcontrol_add.sh file does not clear the queue so that you can add to the existing playlist.

Dependencies:

Optional Dependency

output

terminal_multiplexer

Uses tmux, xterm, ncmpcpp, cava, and terminal covers to provide a nice layout. Title set to screen by wmctrl. No tmux.conf file needed. Inspired by this reddit post.

Dependencies:

One or more of the following:

AA-lib asciiart img2txt

bpmhelper.sh

Uses the bpm-tools package, which analyzes BPM quite nicely on linux, but then writes tags that overwrite album and genre tags. So this wrapper uses eyeD3 to determine if a BPM is already written, then analyzes the file, then uses eyeD3 to do the writing to the file. I already have eyeD3 for the album art script; a solution that does not rely on that dependency can be found at bpmwrap.

bpm-tools outputs error messages if you do not have id3v2 and sox with mp3 headers already installed and thus makes the script fail. You can either tweak the script or install the packages sox, libsox-fmt-mp3, and id3v2.

Accepts two command line arguments (optional)

Use --save-existing to save existing data.
Use --skip-existing to skip further analysis of those that have existing BPM Use --quiet to suppress output (eyeD3 may still output to the screen)

Analyzes the current directory and all subdirectories.

Dependencies

mp3gainhelper.sh

Performs mp3gain analysis and writes to id3 tags. The MP3Gain utility apparently writes by default to APE tags, which aren't used by MPD. While mp3gain no longer has issues corrupting ID3 data if you write directly to ID3 tags, it will crash and abort if it runs into an error instead of continuing onward. That and the options are a pain, so this helps.

Accepts only one command line argument (optional) giving the directory to analyze. Otherwise analyzes the current directory and all subdirectories.

Dependencies:

webserver.covers.sh

Very simple script to make your album covers accessible by MPoD or other remote clients without exposing your entire music directory by copying the cover files to the webserver root. (You need to edit this, obvs.)

Dependencies:

terminalcovers.sh

A kind of hack-y way to show terminal covers in the terminal. Uses either AA-lib or libcaca. AA-lib looks MUCH better, but doesn't automatically exit, so requires killall (yeah, that sucks). You will need to edit the script to choose a different renderer.

Dependencies:

One or more of the following:

AA-lib output

AA-lib

libcaca output

LibCaca

mediakey.sh

This script uses the MPRIS interface to control your media players.
Currently supported players include MPD, Pithos, Audacious, and Clementine

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].