Jellyfin – Find Duplicate Movies

1
2
3
4
5
6
7
8
9
SELECT a.path,a.name, a.UnratedType
FROM TypedBaseItems a
JOIN (SELECT name, path, UnratedType
FROM TypedBaseItems
WHERE UnratedType = 'Movie'
GROUP BY name
HAVING COUNT(*) > 1 ) b
ON a.name = b.name
ORDER BY a.name

Random notes regarding Docker and Nextcloud (and in general)

For my own purposes, mostly.

Resetting a user account (when you don’t have smtp configured).
Get the Docker container id:

Enter the Docker container utilizing the id:

Reset the password:

Also, rescanning files:

Unmonitor Ended Series in Sonarr

Occasionally Sonarr downloads a whole old season of a ended series, I presume because someone has posted a better quality version. Normally, I don’t want this to happen, so I’d like a way to turn off monitoring for series that have ended. There’s no UI based way to do this.

Get  yourself DB Browser for SQL Lite, back up your Sonarr database (in Windows, located at C:\ProgramData\Sonarr\sonarr.db at the time of this writing), open the in use one in DB Browser (no need to even stop Sonarr), and run the following:

Then Write Changes.

Remove old machines from Mouse Without Borders

I love Mouse Without Borders, but holy cow do I not understand how it doesn’t have a function to remove old machines from its settings. It seems like a ridiculous oversight. At any rate, I figured out how to do it. This is as of Powertoys v0.83.0. As per usual, you’re poking under the hood, so be forewarned.

In Windows 10/11, the settings for MWB is stored in a .json file found in C:\Users\YOURUSER\AppData\Local\Microsoft\PowerToys\MouseWithoutBorders. AppData is a hidden dir, so you’ll either have to enable seeing hidden dirs or path to it directly. Open the file in a text editor – I use Notepad++ – and head down to around line 45. There you’ll find MachineMatrixString. Delete the machine names you want to remove from MWB and replace them with empty quotes. Head to the next section, MachinePool, and again remove the machine name and the corresponding value following it, separated by a colon (if it’s a long-gone machine from your network, that value may be NONE) and replace it with a colon. You’re going from something that looks like this:

To something that looks like this:

Note that the before settings depict 3 machines and 1 empty slot and the after settings depict 2 machines and 2 empty slots. Mouse Without Borders has 4 slots for machines. If you just delete the machine you want removed and don’t repopulate with empty values, the MWB UI in PowerToys will lock up.

In my experience you can now save this file and don’t even have to restart PowerToys or MWB. Open the UI and click into MWB or, if you were already in MWB settings, click out and back in, and your machine settings should be automatically updated.

Jellyfin – Error in Directory watcher for: “/media/movies” System.IO.IOException: The configured user limit (8192) on the number of inotify watches has been reached.

Correct this error on Jellyfin (Linux):

Debian or RedHat flavor:

Archlinux:

Pi-Hole: DNSMASQ_WARN Maximum number of concurrent DNS queries reached (max: 150)

Resolving DNSMASQ_WARN – Maximum number of concurrent DNS queries reached (max: 150)

  • Connect to pihole via ssh
  • Navigate to /etc/dnsmasq.d/
  • If 02-custom-settings.conf does not exist, create it:
    • sudo nano 02-custom-settings.conf
    • Populate with the below and save :

  • Reboot pihole

CasaOS – Upgrading Containers

Update: As of the latest iteration CasaOS has an option to “Check and then update.” However, when I ran it against PiHole, which needed an update, it came back claiming current. So… these instructions still stand for the moment.


As of the current iteration of CasaOS, there’s no way to one-click yourself an upgrade on a container. Or, rather, there is, but only sort of. It’s all about how the container installed initially.

To check, pull a config file from the container in question:

  1. Settings > choose Export ComposeFile
  2. Open the file in your text editor of choice and search for the image: line. If it says something like “latest” or “develop” you’re good to go:
  3. In this instance, all you need to do is click Save in CasaOS and the latest image will be pulled down and installed. But wait! Keep reading before you do so! If nothing else, jump down to step 7.
  4. If the image has a hard coded version number, you’re going to need to change it to “latest” and save the YAML (as a different name, or take note of the version number, just in case you find you need to revert):
  5. In the event you’ve had to  update your compose file, now comes the sweaty bit. You need to uninstall the app from CasaOS. If you’ve mapped all your data volumes correctly, this should be fine. Just remember to uncheck Delete userdata when prompted:
  6. Once uninstalled, reinstall the app:
    1. Select App Store, then Custom Install
    2. Select the Import icon on the top right and select your YAML file.
    3. All the settings will be loaded in – confirm them and let ‘er rip.
  7. Now, if you’re making a big upgrade, or an upgrade to a big app, things can get pinchy here for a bit. For instance, I upgraded Navidrome, my music server, and CasaOS barfed a message at me saying something akin to the container being unwell. I run PiHole in the same CasaOS instance, and I noticed that my browsing/DNS resolving had become profoundly slow. CasaOS’s nifty little stats didn’t show anything exciting insofar as resource utilization, but the CasaOS page was also profoundly slow and sluggish. I pulled up the terminal for Navidrome and discovered this:
  8. Now, I have a lot of music. A LOT. So I SSH’ed into my device running CasaOS and navigated to the data directory for Navidrome to discover this:
  9. Navidrome was indeed hard at work upgrading its ridiculously large database – as I refreshed I the timestamp on the db-wal file would continue to iterate.
  10. Eventually the database upgrade finished, Navidrome loaded, and the container was healthy and upgraded.

The moral of the story is, be patient! Don’t freak out if CasaOS delivers some kind of ominous warning – dig deeper before doing  something drastic, like killing a running container in the midst of upgrading a critical database. I suppose you could be double safe by making a backup of your apps data directories before attempting an upgrade. I live on the edge. I recommend going through all your containers and updating all of the ones using hard-coded versions with something like ‘latest.’

Jellyfin – Migrating Users

I’m moving from a Windows based instance of Jellyfin to a containerized instance within CasaOS, and I wanted to preserve user data (including view history). Here’s how I did it:

  • Confirm both your source and destination Jellyfin are the same version
  • Export the UserDatas table from library.db for your source instance. You can use DB Browser for SQLite to achieve this – remember to check “Column names in first line”
  • On your destination server, make a backup of library.db and jellyfin.db
  • Again using DB Browser, open the library.db of your destination server. Drop the UserDatas table and import csv created in the prior step to recreate the table (remember to check that the first line contains the column names)
  • Copy jellyfin.db from your source server and overwrite the db from the destination with it. This is important, as this file contains user history data
  • Fire your new Jellyfin instance up and attempt to log in with an existing user

 

Music

In the late 80s teenage me became enamored with industrial and electronic music – very young genres at the time. I had been listening to punk and metal and, thanks to Fishbone, had discovered funk and soul and ska, but it was my part time job at a record store that sucked me into electronic and industrial. Every week I’d dig through the promo cassettes we’d receive and take home a few, chosen solely for their album covers or titles. This is how I discovered acts like Ministry, Consolidated, Die Warzau, PWEI, Nine Inch Nails and especially Meat Beat Manifesto.

A roommate and I started cobbling together used equipment (usually purchased on layaway from the dearly departed Galaxy Music on Stone Mountain Hwy) and learning Twelve Tone’s Cakewalk sequencer – first on DOS, and then Windows 3.1. When my roommate and I parted ways, I bought out all this equipment – an ancient PC, a Roland Juno 2, two Ensoniq Mirage’s (one rackmount, one full keyboard), a Yamaha drum machine I mostly repurposed as a sample triggerer, and all the requisite cabling and MIDI garbage to tie it all together. Armed with this stuff, and an old Yamaha bass, Gibson Flying V, and a no-name acoustic, I would stay up late at night after work and create weird, kind of unclassifiable songs. By 1993 I had enough ‘finished’ material to make an album… so I did. I spent forever trying (and mostly failing) to master these tracks and tie them together. I designed an album cover, and burned exactly one CD, which I shared with no one.

I’ve held onto that CD ever since. I dug it out a few years ago to listen to privately and then – with some trepidation – shared it with my son, who was developing his own musical taste and dabbling in trying to create songs. “This is you!? How old is this? How did you do this back then?”

Listening to it over 30 years later… it’s not bad. In fact, it was kind of ahead of its time, or at least in line with what was considered cutting edge in burgeoning electronic music scene at the time I was making it. It sounds dated, but it’s also fascinating to consider that this stuff wasn’t made with a modern DAW – the samples were recorded onto 3.5 inch floppies, painstakingly manipulated and altered, mostly triggered ‘live,’ and sequenced with Cakewalk, which had only MIDI capability at the time. Many of the samples were me playing, either live or converted from an ancient 4-track cassette recorder. Making this stuff now would be easy. Back then it was insanely time consuming and complex. Much of the grit and grime and audio imperfection and degradation comes from this old process, but I kind of think it sounds better because of this. It somehow sounds more organic and lived-in than the sterile electronic music of today.

The 20 year old me was too insecure to share this stuff with anyone. I wonder what could have happened if I hadn’t lacked the confidence to put myself out there all those years ago. But that wasn’t me. I didn’t share. I quit bands as soon as I felt out of my comfort zone. I still have boxes of old 4-track tapes I haven’t listened to in 35 years – many with musical collaborators who are now dead and gone (including the aforementioned roommate) – 3 ring binders filled with art that no one’s ever seen.

But now I’m old, and we’re in a world so flooded with music and media that putting this out there is like dropping a grain of sand on a beach. My kid didn’t recoil upon hearing it so I figured, what the hell.

https://share.amuse.io/album/josefek-josefek

 

CasaOS and LinkDing

Giving LinkDing a whirl. It isn’t featured in any of the stores I’ve found, so I rolled my own. Here’s a sample YAML:

Once it’s up, hit the terminal and create a user with:

From there it will prompt for a password.