I actually even made my own bullshit-Spotify. As in, I’ve got a server running on a single-board computer which reads my music folder and serves a small music player as a webpage.
I didn’t want to install a music player client on my work laptop, but still wanted to listen to my own songs there.
bullshit-Spotify
The only proper use-case.
#!/usr/bin/env bash mpc load $1 mpc volume 80 mpc random on mpc play
Name it shufflenplay so then you can
shufflenplay <playlist name>
Oh man are we sharing mpd scripts? I have this one that lets me search through music directory and add anything to the play queue (so I can add a single track or an entire album or whatever):
#!/bin/bash MUSIC_DIR=$(grep -m 1 -E '^\s*music_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \') MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}" cd "$MUSIC_DIR" CHOICE="$(find . | cut -c 3- | dmenu)" || exit 1; mpc insert "$CHOICE" mpc play
There’s also this one that lets me save the currently playing song to a playlist of my choice. It’s good if I’m listening to a new album or a new artist and suddenly think “yeah, this song really fits with the mood of X playlist”:
#!/bin/bash MUSIC_DIR=$(grep -m 1 -E '^\s*playlist_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \') choice="$(mpc lsplaylists | dmenu)" || { echo "No choice." ; exit 1; } MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}" mpc current -f '%file%' >> "$MUSIC_DIR/$choice.m3u"
Here’s my script to shuffle play an existing playlist as well:
#!/bin/sh choice="$(mpc lsplaylists | dmenu)" mpc clear sleep 0.1 mpc load "$choice" sleep 0.1 mpc shuffle sleep 0.1 mpc play
The sleeps are to prevent Cantata (graphical mpd client) from shitting itself if I run this script while it’s open. Also notice
mpc shuffle
instead ofmpc random on
. It shuffles the current playlist, but keeps the linear play order, so that I can add songs to play right after the current one.Oooh those are nice! I’ll have to try mpc shuffle out then, and even though I generate my playlists with beets, I’ll definitely try out the save to playlist one!
I think your script didn’t format correctly:
https://files.catbox.moe/5ex40l.jpg this is how it looks on my end (for some reason I can’t upload photos rn, it errors out)
I just self host jellyfin
It even works for the music library!? Jellyfin is crazy rad.
Really well actually. The mobile app does not support download “caching” of music, but third party apps like synfonium do.
The jellyfin music experience is really good, not perfect, but still really good.
For kinda every type of media. I use it as a cloud (private VPN) music repository/library as well.
Yeah I switched to it from Plex. Plex wouldn’t stop forgetting my libraries and revoking permissions.
i have different directories named after moods/styles filled with hard links to my music. works better than playlists for me
So real. I’ve always thought music apps like iTunes/Spotify etc. were superfluous when you already have a file system and sym links.
i used symlinks first, but they break when you rename target files or directories.
as long as it’s one file system, hard links work better for me. so one day i replaced them all with hard links.
real. I was using “mpv --shuffle soundcloud-playlist-link-here” for a while because soundcloud’s shuffle literally does not work
Mplayer? What year is it? I thought everyone is on mpv now 8-)
I have all music on my phone and host Navidrome server on LAN, also on my phone in Termux.
Audacious with Winamp skins it’s where it’s at.
Do yourself the favor and upgrade to mpv
But how do you get latest tracks?
yt-dlp
No. Low quality multi-generation lossy re-encodes.
Soulseek or doubledouble.top
Yeah okay but how do you discover new music?
Shazam what I hear around me and like. Often it’s just bus drivers listening to music, and since I sit in the front if possible, I can discover music. Or just radio, whether it’s FM, DAB+ or internet. AM is usually limited to news and bazillion chinese stations.
Haha so many times I’ve heard stuff playing that sounds catchy in like random sandwich shops, and hunt down where I can get a clear detection on it.
It’s actually pretty impressive what the average smartphone mic can pick up … For better and worse. =\
But I’ve found some favorite songs that way. It beats the old days of trying really hard to discern some words in the lyrics and hoping a search engine would help!
I’m impressed with my pixel’s ability to do it. I forget it’s on sometimes and I’ll walk in a pub. Having only been inside 5 seconds and my phone in my pocket the whole time, it already has the song playing on display on the lock screen. Its almost like it works better when the volume is lower. I have a harder time detecting music with it if I turn the volume up or hold it near a speaker. Put it my pocket and have 30 people talk over it? Probably has a 95%+ successful detection rate in those conditions
you should swap Shazam for the open source “Audile” :
But can that be automated? I have a yaml file and a glorified crib job that checks my subscriptions and playlists every 8h and downloads new stuff automatically.
I doubt it.
I’m so glad I don’t care about/don’t notice audio quality. I could listen to a literal microwave oven and I’d consider it a beautiful, high fidelity song.
Soulseek > Freyr > yt-dlp
Soulseek is better for more popular tracks and artists and in normally better quality.
Freyr can be fed a spotify/apple music link, find the highest quality version and pull the file from YouTube music or YouTube. Then it will automatically write the appropriate metadata and cover art to the songs.
If all else fails, yt-dlp to directly rip from YouTube.
Or buy it legally. In the past I’ve gotten songs by buying from Artists’ website, bandcamp, and iTunes.
Are those Android or Linux tools?
Nicotine+ is a FOSS multi-platform gui for Soulseek and runs on Linux, *BSD, macOS, and Windows.
Freyr is a CLI tool that can either built manually for Linux I believe or ran in Docker on Linux, macOS, and Windows.
yt-dlp is a CLI tool that has compiled binaries or can be installed through a package manager on Linux, BSD, macOS, and Windows.
As an alternative to Nicotine+ I use slskd in a docker hosted in my raspberry pi. That way I can search/download and share files even when my main computer isn’t turned on.
I don’t know what Soulseek or Freyr are (I’ll look into what they are), but you can use Seal (F-Droid) to download files using yt-dlp on Android.
Thanks, installed!
Nothing worth listening to has been produced since 1989 /s
They don’t, the ppl who do this are probably listening to the same boomer rock albums