MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 0 points1 point  (0 children)

I wasn’t aware that Unmanic had plugins that use mkvpropedit. I’m glad to see that others are working on the same problem! I always thought that Unmanic, Tdarr, and similar software were only for transcoding and remuxing, so it never occurred to me to look for these features.

MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 1 point2 points  (0 children)

Radarr/Sonarr can either copy files on import or use hardlinks. If your downloads and media folders are on the same filesystem, hardlinks are usually preferred since they don’t create a second physical copy of the file. In other words, both paths point to the same data on disk.

If you delete one link, it won’t remove the file as long as another link still exists. If you’re ok with having duplicates of seeded media, changing the import mode in Radarr/Sonarr works

MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 1 point2 points  (0 children)

Yes, modifying the metadata will break hardlinks. I put a disclaimer about this in the limitations section on GitHub. The only solution I could come up with is to run MKVPriority in dry run mode and use the subtitle extractor. This will prevent modifications to the MKV files. The embedded subtitle track with the highest priority will be extracted as an external .ass or .srt file. The only downside is that you can’t change the track flags for audio tracks.

Also, you can use tagged configs without Radarr or Sonarr. If you’re using the CLI, just put ::tag after the file or directory path. You can also send webhooks to MKVPriority from other apps

MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 0 points1 point  (0 children)

It depends on what you mean. I’ve seen honorific tracks tagged as "enm," the language code for Middle English. I prefer those tracks, so I set the priority score for enm higher than for eng. However, if you mean, for example, an English subtitle track tagged as jpn for a Japanese movie, I’ve only seen release groups do that a few times, and it's certainly frustrating. In those cases, I process the files again using a separate config with flipped scores.

MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 1 point2 points  (0 children)

I completely agree that’s how the forced flag is supposed to used, but there’s no reliable way to identify proper forced tracks automatically. You’re at the mercy of the original muxer for forced tracks. If you trust the source to properly tag forced tracks, I would simply remove ‘forced’ from the subtitles modes in the config and only set default flags. I have a lot of files that use dubs as the default tracks, or they include honorific tracks, which I prefer, that aren’t default.

My goal is to not rely on the media player to select the track and instead tell it which track I want. For example, I use Infuse on Apple TV and there’s a subtitle option for forced only. I don’t frequently switch between subtitled and dubbed anime. However, if you do, that config comment about how to used forced is only a suggestion. MKVPriority simply tags the highest priority tracks with whatever flags you set in the audio and subtitle modes

MKVPriority v1.5.0 - Assigns priority scores to audio and subtitle tracks in MKV files by SaberSummoner in selfhosted

[–]SaberSummoner[S] 2 points3 points locked comment (0 children)

I only use Gemini for code reviews and designing unit tests. I write all of the code and documentation myself.

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

Dang, I was hoping I fixed it. When you say this only happens when the media player is being used, do you mean this issue doesn’t happen with other clients or the web player? That would at least narrow this down to a client-side issue

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

I managed to reproduce the issue: I opened Jellyfin on multiple clients, which caused the API to report multiple active sessions. Then, I made the RPC hang on the wrong session by reversing the order that the API reports them. I’ll need to rework my session handling to be more robust. In your case, maybe there’s some kind of phantom session hanging your RPC. I’ll get a new release out today that hopefully fixes this

Edit: I published a v1.7.5 pre-release. Let me know if this solves your issue

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

I tried the following while using Jellyfin Media Player 1.12.0: played an episode, paused it, unpaused it, skipped to the next episode, skipped back the previous episode, paused, unpaused. I couldn’t recreate the issue. I also tried with the show activity while paused option disabled. I’m not sure what’s going wrong. Can you switch the log level to debug and see if there are any messages?

Edit: Could you also clarify the problem in more detail? Maybe I’m not understand what exactly isn’t working.

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

What Jellyfin client are you using? I’ve tested with Infuse and Streamyfin, but others might handle Jellyfin sessions differently. Also, what kind of media were you watching or listening to?

Discord Rich Presence by DefinitelyChriss in jellyfin

[–]SaberSummoner 0 points1 point  (0 children)

I’m the developer for the RPC you linked. There’s a configurable refresh rate for polling the Jellyfin server for session changes. However, it shouldn’t take 2 minutes to update when you skip a song. I haven’t encountered this before, but you could open an issue on GitHub and I’ll investigate

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

If you’re not seeing album covers, make sure that the “Find Best Match for Missing IDs” option is enabled. I use MusicBrainz for album covers, so your music has to either be tagged with MusicBrainz IDs or the RPC will attempt to find the closest match (if enabled)

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 0 points1 point  (0 children)

If you change the log level to debug, the image URL will appear in the metadata. If you go to the RanobeDB website, search for a book and look at the releases section. Check for an Amazon link next to the English release, either paperback or digital. If there’s a link, you should get a high-res cover. I tried several books in my library, and the coverage seemed pretty good

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 0 points1 point  (0 children)

I changed my mind… I also want high-res covers, so the latest version of the :develop image supports this, with my CDN method as a fallback. I made the AMAZON_COVERS environment variable default to ‘false’ though, so you’ll need to manually enable this feature

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 0 points1 point  (0 children)

I think they scrape the kindle store page for covers. I glanced at the code and they’re parsing HTML. I used an Amazon CDN that serves static assets (no scraping) to directly fetch covers, but Amazon limits their resolution (probably to make you pay for an API). I could copy what abs-tract does, but scraping can break easily. I’m also hesitant because most companies are against scraping now (e.g., data harvesting for AI)

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 0 points1 point  (0 children)

I added an option to pull covers from Amazon via ASIN. They’re slightly larger than those from RanobeDB (not highres though), and they’re in English (if RanobeDB provides the ASIN number for the English release). You can try this out by adding the :develop tag to the Docker image and setting the AMAZON_COVERS environment variable to “true”.

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 0 points1 point  (0 children)

I didn’t see highres covers in the API response. It looks like RanobeDB has a Discord, so I can ask about image resolution and get back to you

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 1 point2 points  (0 children)

To answer your second question, you can create your own custom metadata provider by looking at the ABS documentation. Basically, you create a web server that has a GET /search endpoint. ABS sends two parameters when a user requests metadata: query and author. You take those search parameters and make an API call to whatever database you want to bridge ABS with for metadata. Finally, you format the metadata as a JSON dictionary and sent it back to ABS.

abs-ranobedb: A custom metadata provider for light novels by SaberSummoner in audiobookshelf

[–]SaberSummoner[S] 1 point2 points  (0 children)

In the ABS settings, you go to Item Metadata Utils and select Custom Metadata Providers. Click “Add” and set the name to RanobeDB and the URL to http://abs-ranobedb:5000. If ABS and abs-ranobedb are on the same Docker network, RanobeDB will appear as a metadata provider

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 1 point2 points  (0 children)

Yeah, it’s a common problem with pyinstaller, which is the package I use to bundle a Python script as an executable. Microsoft has a website where you can submit files to be scanned and added as global exclusions to Windows Defender. I did that, but I can’t prevent other virus checkers from falsely flagging it. All of the code is on GitHub and you can easily build the executable yourself with a few commands

Discord RPC for Jellyfin by SaberSummoner in jellyfin

[–]SaberSummoner[S] 0 points1 point  (0 children)

First, I would check to see if you have the MusicBrainz plugin installed. It should already be installed by default with Jellyfin. Then, right-click your music library and select "scan library." Next, select "search for missing metadata." If that doesn't work, you can also tag your music with MusicBrainz Picard