GithubHelp home page GithubHelp logo

thecaptain989 / radarr-striptracks Goto Github PK

View Code? Open in Web Editor NEW
17.0 1.0 1.0 470 KB

A Docker Mod to Radarr/Sonarr to automatically strip out unwanted audio and subtitle tracks

Home Page: https://hub.docker.com/r/thecaptain989/radarr-striptracks

License: GNU General Public License v3.0

Shell 99.00% Dockerfile 1.00%
mkvmerge radarr sonarr

radarr-striptracks's People

Contributors

thecaptain989 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

stneville

radarr-striptracks's Issues

Implement Radarr API feedback to scan remuxed video file

After script processing, the resulting video will have the same name, but different size, and often different audio languages (the whole point of the script). This currently results in a mismatch between what Radarr shows in the UI and what is actually encoded in the video file.

The thought here is to call the API and tell Radarr to rescan the new file. Will require research into the Radarr API, getting the key from config.xml, etc.

Implement log file rotation

Open to suggestions here.
Considered:

I'm leaning toward the last option due to this article and the fact that multilog and tinylog use the crazy TAI timestamp format that it completely not what I want or need. Those are daemon solutions that are way over-engineered for my needs.

Quality is lost on rescan (Radarr)

In Radarr v2, if the file suffix changes, the quality of the downloaded file will be lost on a rescan.
For example, if the original downloaded file was:
A Movie (2014).avi
with a quality of DVD, the remuxed file will be named:
A Movie (2014).mkv
with a quality of Unknown.

I spent a great deal of time trying to fix this in Radarr, only to run into what I must describe as a Radarr API bug. When I make a PUT call to the /movies/{id} endpoint with all of the original data from the MKV except I change the quality, the GUI is visually updated (if you happen to have the Radarr GUI up) with the new quality, but the API returns Unknown quality and if you refresh the GUI it goes back to Unknown.

I'm leaving all the new code in case the API gets fixed (maybe v3?) or I otherwise figure it out.

None of this happens in Sonarr.

Problem with [MIS] audio track

Silent movies oft use [MIS] audio track for their music/acoustic sound.
From a film with 2 MIS tracks one was removed accidentally.

Would be best not to touch MIS.

Filename format renaming

Having Renaming of the files enabled often there is changing something and a new rename needs to be done after striptracks. It would be cool, if at the end of processing the rename function of sonarr or radarr could be called.

sonarr unlinsted language

the setup is all via docker so i wonder is there any way to keep ro_RO even if listed in the sonarr drop down menu? i ask this because dont want to do it via CLI but on sonarr import automatically

Errors in striptracks.txt Indicate mkvmerge Fails

Hello,

I recently got things installed and configured, but it seems that radarr-striptracks fails when attempting to process recently downloaded files in Sonarr.

Here are the lines from my log file:

2023-10-14 10:08:01.1|[905]Info|Sonarr event: Test
2023-10-14 10:08:01.1|[905]Info|Script was test executed successfully.
2023-10-14 10:08:01.2|[905]Info|Completed in 0m 0s
2023-10-15 02:59:28.8|[3928]Info|Sonarr event: Download, Video: /tv/A Television Show/Season 03/s03e06 - Name of Episode (WEBDL-1080p).mkv, Size: 1G, AudioKeep: :eng, SubsKeep: :eng
2023-10-15 02:59:29.0|[3928]Error|[127] Error executing mkvmerge.
2023-10-15 02:59:29.2|[3928]Error|Container format '' is unsupported by mkvmerge. Unable to continue.
2023-10-15 02:59:29.2|[3928]Info|Completed in 0m 3s
2023-10-15 22:22:45.1|[7280]Info|Sonarr event: Download, Video: /tv/A Television Show/Season 10/s10e13 - Name of Episode (SDTV).mkv, Size: 1G, AudioKeep: :eng, SubsKeep: :eng
2023-10-15 22:22:45.3|[7280]Error|[127] Error executing mkvmerge.
2023-10-15 22:22:45.4|[7280]Error|Container format '' is unsupported by mkvmerge. Unable to continue.
2023-10-15 22:22:45.4|[7280]Info|Completed in 0m 2s
2023-10-16 06:02:54.6|[8538]Info|Sonarr event: Download, Video: /tv/A Television Show/Season 16/s16e01 - Name of Episode (SDTV).mkv, Size: 1G, AudioKeep: :eng, SubsKeep: :eng
2023-10-16 06:02:54.7|[8538]Error|[127] Error executing mkvmerge.
2023-10-16 06:02:54.9|[8538]Error|Container format '' is unsupported by mkvmerge. Unable to continue.
2023-10-16 06:02:54.9|[8538]Info|Completed in 0m 2s

I attempted to see if there were any mkvtoolnix logs anywhere in the container, but I didn't find any. If there are, can anybody point me to their location to see what additional information I can glean from this?

My current configuration is:
Docker - version 20.10.3, build 55f0773
Sonarr - version 3.0.10.1567, package version 3.0.10.1567-ls208 by linuxserver.io, Mono version 6.12.0.200

I'm using: -e DOCKER_MODS=linuxserver/mods:radarr-striptracks in my Docker run command.

If there's anything else I can provide, please let me know.

curl error calling url in Sonarr - there is a slash missing in the URL

Hello,
I am running Sonarr v4 and are seeing these errors when the script is run - there is a missing "/" after the port number and the Url Base. This is under docker, the LinuxServer.io image ghcr.io/linuxserver/sonarr:develop with striptracks installed as a "mod"

[Error] striptracks-eng.sh: Error|[3] curl error when calling: "http://localhost:8989sonarr/api/v3/command" with data {"name":"RescanSeries","seriesId":xxxx}
[Error] striptracks-eng.sh: Error|Web server returned:
[Error] striptracks-eng.sh: Error|The 'RescanSeries' API with seriesId xxxx failed.
[Error] striptracks-eng-jpn.sh: Error|[3] curl error when calling: "http://localhost:8989sonarr/api/v3/system/status"
[Error] striptracks-eng-jpn.sh: Error|Web server returned:
[Error] striptracks-eng-jpn.sh: Error|[3] curl error when calling: "http://localhost:8989sonarr/api/v3/languageprofile"
[Error] striptracks-eng-jpn.sh: Error|Web server returned:
[Error] striptracks-eng-jpn.sh: Warn|Unable to retrieve language codes from 'languageprofile' API (curl error or returned a null name).

Thanks

Some metadata lost during re-scan

Some information about the downloaded file may be lost during the rescan following conversion. The exact info that is lost is dependent upon the specific video that is downloaded combined with your Media Management naming configuration, including formats for Standard Movie Format (Radarr) or Standard Episode Format (Sonarr). In some cases nothing is lost. In advanced configurations, the loss of this information could even induce looping, where Radarr/Sonarr continuously re-downloads the same file.

If the conditions are right, the following information might be lost:

  • Release Group (Fixed beginning with #55)
  • Custom Formats
  • Custom Format Score

I'm having a hard time figuring out how to manually put this data back, even via API.

This bug has existed for a long time, but the good news is that beginning with Release 2.4 #51 the chances of this are greatly reduced due to the quick drop out added with the resolution of issue #49 .

New MKVMerge breaks the script

Somehow I totally missed the the one key feature of mkvmerge that my script relies on was deprecated. 😭

RIP --identify-verbose

Through my stupidity, it apparently has been deprecated since v20. v50 is current. 🙄

Soooooooooo.

The good news is that there is a JSON export option that works in all builds that looks like it will work for my purposes. The bad news is that I have to rewrite the heart of the script, possibly abandoning awk entirely (not necessarily a bad thing). This is going to take some time.

The only way I discovered this is that one Docker container suddenly pulled a more current version during build, for an as yet unknown reason. Great googly moogly.

don't do anything if nothing gets removed

it would be great, if the script would skip the mkvmerge step (and following steps) if nothing get's removed.
currently, even if nothing gets removed, a new file is created and the old file is moved to the recycle bin.

this takes space and time

mkvmerge breaking and deleting file

Sometimes (especially with bigger files) it seems mkvmerge doesn't finish and then the file gets deleted instead. It correctly moves the file to the media folder, starts mkvmerge then when the file is 95% finished it gives up and deletes both the original and the .tmp file. This then confuses Sonarr/Radarr and it stops importing files altogether until restart. MKVmerge has exit code of 0 though which seems to imply it ran correctly. In my bin I've got a 6.2GB original file and 6GB .tmp.

2023-10-29 18:11:52.2|[3101]Debug|Enabling debug logging level 2. Starting Sonarr run for: Gen V 01x04 - The Whole Truth
2023-10-29 18:11:52.2|[3101]Debug|DOCKER_MODS=linuxserver/mods:radarr-striptracks
2023-10-29 18:11:52.2|[3101]Debug|HOME=/root
2023-10-29 18:11:52.2|[3101]Debug|HOSTNAME=bb78e13d0322
2023-10-29 18:11:52.2|[3101]Debug|LSIO_FIRST_PARTY=true
2023-10-29 18:11:52.2|[3101]Debug|No_Expand=true
2023-10-29 18:11:52.2|[3101]Debug|No_PreLoadSQLite=true
2023-10-29 18:11:52.2|[3101]Debug|No_SQLiteFunctions=true
2023-10-29 18:11:52.2|[3101]Debug|No_SQLiteXmlConfigFile=true
2023-10-29 18:11:52.2|[3101]Debug|PATH=/command:/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2023-10-29 18:11:52.2|[3101]Debug|PGID=1000
2023-10-29 18:11:52.2|[3101]Debug|PUID=1000
2023-10-29 18:11:52.2|[3101]Debug|PWD=/app/sonarr/bin
2023-10-29 18:11:52.2|[3101]Debug|S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
2023-10-29 18:11:52.2|[3101]Debug|S6_STAGE2_HOOK=/docker-mods
2023-10-29 18:11:52.2|[3101]Debug|S6_VERBOSITY=1
2023-10-29 18:11:52.2|[3101]Debug|SHLVL=3
2023-10-29 18:11:52.2|[3101]Debug|SONARR_BRANCH=develop
2023-10-29 18:11:52.3|[3101]Debug|TERM=xterm
2023-10-29 18:11:52.3|[3101]Debug|TZ=Australia/Sydney
2023-10-29 18:11:52.3|[3101]Debug|VIRTUAL_ENV=/lsiopy
2023-10-29 18:11:52.3|[3101]Debug|XDG_CONFIG_HOME=/config/.config
2023-10-29 18:11:52.3|[3101]Debug|XDG_DATA_HOME=/config/.config/share
2023-10-29 18:11:52.3|[3101]Debug|_=/bin/printenv
2023-10-29 18:11:52.3|[3101]Debug|sonarr_applicationurl=
2023-10-29 18:11:52.3|[3101]Debug|sonarr_download_client=qBittorrent
2023-10-29 18:11:52.3|[3101]Debug|sonarr_download_client_type=qBittorrent
2023-10-29 18:11:52.3|[3101]Debug|sonarr_download_id=2BC72DD1199F8A7772A41F47CA7A4781893577BB
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_customformat=HDR|AMZN|UHD Streaming Cut
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_customformatscore=550
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodeairdates=2023-10-06
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodeairdatesutc=10/06/2023 04:00:00
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodecount=1
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodeids=1468
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodenumbers=4
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodeoverviews=The Godolkin University Police Department is seeking any information on the person or persons who violated the Polarity statue in the groin/genital area last night outside the School of Crimefighting. If you have any information, please contact @GodUPD.
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_episodetitles=The Whole Truth
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_id=570
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_audiochannels=5.1
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_audiocodec=EAC3
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_audiolanguages=ita / eng
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_height=1600
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_languages=ita / eng
2023-10-29 18:11:52.3|[3101]Debug|sonarr_episodefile_mediainfo_subtitles=ita / eng / eng / ita
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_mediainfo_videocodec=h265
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_mediainfo_videodynamicrangetype=HDR10Plus
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_mediainfo_width=3840
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_path=/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_quality=WEBDL-2160p
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_qualityversion=1
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_relativepath=Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_releasegroup=MeM
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_scenename=Gen.V.S01E04.Tutta.la.verita.ITA.ENG.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-MeM.GP
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_seasonnumber=1
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_sourcefolder=/data/torrents
2023-10-29 18:11:52.4|[3101]Debug|sonarr_episodefile_sourcepath=/data/torrents/Gen.V.S01E04.Tutta.la.verita.ITA.ENG.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-MeM.GP.mkv
2023-10-29 18:11:52.4|[3101]Debug|sonarr_eventtype=Download
2023-10-29 18:11:52.4|[3101]Debug|sonarr_instancename=Sonarr
2023-10-29 18:11:52.4|[3101]Debug|sonarr_isupgrade=False
2023-10-29 18:11:52.4|[3101]Debug|sonarr_release_indexer=1337x (Prowlarr)
2023-10-29 18:11:52.4|[3101]Debug|sonarr_release_size=6678673920
2023-10-29 18:11:52.4|[3101]Debug|sonarr_release_title=Gen.V.S01E04.Tutta.la.verita.ITA.ENG.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265 MeM.GP.mkv
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_genres=Action|Drama|Science Fiction
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_id=39
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_imdbid=tt13159924
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_originallanguage=eng
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_path=/data/media/tv/Gen V (2023) [tvdbid-417909]
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_tags=not-anime
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_title=Gen V
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_titleslug=gen-v
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_tvdbid=417909
2023-10-29 18:11:52.4|[3101]Debug|sonarr_series_tvmazeid=62998
2023-10-29 18:11:52.5|[3101]Debug|sonarr_series_type=Standard
2023-10-29 18:11:52.5|[3101]Debug|sonarr_series_year=2023
2023-10-29 18:11:52.5|[3101]Debug|striptracks_arr_config=/config/config.xml
2023-10-29 18:11:52.5|[3101]Debug|striptracks_audiokeep=:jpn:eng:zho:chi:und
2023-10-29 18:11:52.5|[3101]Debug|striptracks_debug=2
2023-10-29 18:11:52.5|[3101]Debug|striptracks_eventtype=sonarr_eventtype
2023-10-29 18:11:52.5|[3101]Debug|striptracks_json_quality_root=episodeFile
2023-10-29 18:11:52.5|[3101]Debug|striptracks_language_api=languageprofile
2023-10-29 18:11:52.5|[3101]Debug|striptracks_language_jq=.languages[] | select(.allowed).language
2023-10-29 18:11:52.5|[3101]Debug|striptracks_log=/config/logs/striptracks.txt
2023-10-29 18:11:52.5|[3101]Debug|striptracks_maxlog=4
2023-10-29 18:11:52.5|[3101]Debug|striptracks_maxlogsize=512000
2023-10-29 18:11:52.5|[3101]Debug|striptracks_newvideo=/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv
2023-10-29 18:11:52.5|[3101]Debug|striptracks_pid=3101
2023-10-29 18:11:52.5|[3101]Debug|striptracks_profile_jq=.series.languageProfileId
2023-10-29 18:11:52.5|[3101]Debug|striptracks_profile_type=language
2023-10-29 18:11:52.5|[3101]Debug|striptracks_rescan_api=RescanSeries
2023-10-29 18:11:52.5|[3101]Debug|striptracks_rescan_id=39
2023-10-29 18:11:52.5|[3101]Debug|striptracks_script=striptracks-custom.sh
2023-10-29 18:11:52.5|[3101]Debug|striptracks_subskeep=:eng:zho:chi
2023-10-29 18:11:52.5|[3101]Debug|striptracks_tempvideo=/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.tmp
2023-10-29 18:11:52.5|[3101]Debug|striptracks_title=Gen V 01x04 - The Whole Truth
2023-10-29 18:11:52.5|[3101]Debug|striptracks_type=sonarr
2023-10-29 18:11:52.5|[3101]Debug|striptracks_ver=af92432
2023-10-29 18:11:52.5|[3101]Debug|striptracks_video=/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv
2023-10-29 18:11:52.5|[3101]Debug|striptracks_video_api=episode
2023-10-29 18:11:52.5|[3101]Debug|striptracks_video_folder=/data/media/tv/Gen V (2023) [tvdbid-417909]
2023-10-29 18:11:52.6|[3101]Debug|striptracks_video_id=1468
2023-10-29 18:11:52.6|[3101]Debug|striptracks_video_type=series
2023-10-29 18:11:52.6|[3101]Debug|striptracks_videofile_api=episodefile
2023-10-29 18:11:52.6|[3101]Debug|striptracks_videofile_id=570
2023-10-29 18:11:52.6|[3101]Debug|Reading from Sonarr config file '/config/config.xml'
2023-10-29 18:11:52.6|[3101]Debug|Getting Sonarr version. Calling Sonarr API using GET and URL 'http://localhost:8989/api/v3/system/status'
2023-10-29 18:11:52.6|[3101]Debug|API returned: {
2023-10-29 18:11:52.6|[3101]Debug|  "appName": "Sonarr",
2023-10-29 18:11:52.6|[3101]Debug|  "instanceName": "Sonarr",
2023-10-29 18:11:52.6|[3101]Debug|  "version": "4.0.0.703",
2023-10-29 18:11:52.6|[3101]Debug|  "buildTime": "2023-10-27T10:29:14Z",
2023-10-29 18:11:52.6|[3101]Debug|  "isDebug": false,
2023-10-29 18:11:52.6|[3101]Debug|  "isProduction": true,
2023-10-29 18:11:52.6|[3101]Debug|  "isAdmin": false,
2023-10-29 18:11:52.6|[3101]Debug|  "isUserInteractive": true,
2023-10-29 18:11:52.6|[3101]Debug|  "startupPath": "/app/sonarr/bin",
2023-10-29 18:11:52.6|[3101]Debug|  "appData": "/config",
2023-10-29 18:11:52.6|[3101]Debug|  "osName": "alpine",
2023-10-29 18:11:52.6|[3101]Debug|  "osVersion": "3.18.4",
2023-10-29 18:11:52.6|[3101]Debug|  "isNetCore": true,
2023-10-29 18:11:52.6|[3101]Debug|  "isLinux": true,
2023-10-29 18:11:52.6|[3101]Debug|  "isOsx": false,
2023-10-29 18:11:52.6|[3101]Debug|  "isWindows": false,
2023-10-29 18:11:52.7|[3101]Debug|  "isDocker": true,
2023-10-29 18:11:52.7|[3101]Debug|  "mode": "console",
2023-10-29 18:11:52.7|[3101]Debug|  "branch": "develop",
2023-10-29 18:11:52.7|[3101]Debug|  "authentication": "forms",
2023-10-29 18:11:52.7|[3101]Debug|  "migrationVersion": 199,
2023-10-29 18:11:52.7|[3101]Debug|  "urlBase": "",
2023-10-29 18:11:52.7|[3101]Debug|  "runtimeVersion": "6.0.13",
2023-10-29 18:11:52.7|[3101]Debug|  "runtimeName": ".NET",
2023-10-29 18:11:52.7|[3101]Debug|  "startTime": "2023-10-29T07:05:30Z",
2023-10-29 18:11:52.7|[3101]Debug|  "packageVersion": "4.0.0.703-ls1",
2023-10-29 18:11:52.7|[3101]Debug|  "packageAuthor": "[linuxserver.io](https://linuxserver.io)",
2023-10-29 18:11:52.7|[3101]Debug|  "packageUpdateMechanism": "docker",
2023-10-29 18:11:52.7|[3101]Debug|  "databaseVersion": "3.41.2",
2023-10-29 18:11:52.7|[3101]Debug|  "databaseType": "sqLite"
2023-10-29 18:11:52.7|[3101]Debug|}
2023-10-29 18:11:52.8|[3101]Debug|Detected Sonarr version 4.0.0.703
2023-10-29 18:11:52.8|[3101]Debug|Getting list of language codes. Calling Sonarr API using GET and URL 'http://localhost:8989/api/v3/languageprofile'
2023-10-29 18:11:52.9|[3101]Debug|Getting list of language profiles. Calling Sonarr API using GET and URL 'http://localhost:8989/api/v3/languageProfile'
2023-10-29 18:11:52.9|[3101]Debug|Getting video information for episode '1468'. Calling Sonarr API using GET and URL 'http://localhost:8989/api/v3/episode/1468'
2023-10-29 18:11:52.9|[3101]Debug|API returned: {
2023-10-29 18:11:52.9|[3101]Debug|  "seriesId": 39,
2023-10-29 18:11:52.9|[3101]Debug|  "tvdbId": 9907869,
2023-10-29 18:11:52.9|[3101]Debug|  "episodeFileId": 570,
2023-10-29 18:11:52.9|[3101]Debug|  "seasonNumber": 1,
2023-10-29 18:11:52.9|[3101]Debug|  "episodeNumber": 4,
2023-10-29 18:11:53.0|[3101]Debug|  "title": "The Whole Truth",
2023-10-29 18:11:53.0|[3101]Debug|  "airDate": "2023-10-06",
2023-10-29 18:11:53.0|[3101]Debug|  "airDateUtc": "2023-10-06T04:00:00Z",
2023-10-29 18:11:53.0|[3101]Debug|  "runtime": 47,
2023-10-29 18:11:53.0|[3101]Debug|  "overview": "The Godolkin University Police Department is seeking any information on the person or persons who violated the Polarity statue in the groin/genital area last night outside the School of Crimefighting. If you have any information, please contact @GodUPD.",
2023-10-29 18:11:53.0|[3101]Debug|  "episodeFile": {
2023-10-29 18:11:53.0|[3101]Debug|    "seriesId": 39,
2023-10-29 18:11:53.0|[3101]Debug|    "seasonNumber": 1,
2023-10-29 18:11:53.0|[3101]Debug|    "relativePath": "Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv",
2023-10-29 18:11:53.0|[3101]Debug|    "path": "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv",
2023-10-29 18:11:53.0|[3101]Debug|    "size": 6670073264,
2023-10-29 18:11:53.0|[3101]Debug|    "dateAdded": "2023-10-29T07:06:56Z",
2023-10-29 18:11:53.0|[3101]Debug|    "sceneName": "Gen.V.S01E04.Tutta.la.verita.ITA.ENG.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-MeM.GP",
2023-10-29 18:11:53.0|[3101]Debug|    "releaseGroup": "MeM",
2023-10-29 18:11:53.0|[3101]Debug|    "languages": [
2023-10-29 18:11:53.0|[3101]Debug|      {
2023-10-29 18:11:53.0|[3101]Debug|        "id": 5,
2023-10-29 18:11:53.0|[3101]Debug|        "name": "Italian"
2023-10-29 18:11:53.0|[3101]Debug|      },
2023-10-29 18:11:53.0|[3101]Debug|      {
2023-10-29 18:11:53.0|[3101]Debug|        "id": 1,
2023-10-29 18:11:53.0|[3101]Debug|        "name": "English"
2023-10-29 18:11:53.0|[3101]Debug|      }
2023-10-29 18:11:53.1|[3101]Debug|    ],
2023-10-29 18:11:53.1|[3101]Debug|    "quality": {
2023-10-29 18:11:53.1|[3101]Debug|      "quality": {
2023-10-29 18:11:53.1|[3101]Debug|        "id": 18,
2023-10-29 18:11:53.1|[3101]Debug|        "name": "WEBDL-2160p",
2023-10-29 18:11:53.1|[3101]Debug|        "source": "web",
2023-10-29 18:11:53.1|[3101]Debug|        "resolution": 2160
2023-10-29 18:11:53.1|[3101]Debug|      },
2023-10-29 18:11:53.1|[3101]Debug|      "revision": {
2023-10-29 18:11:53.1|[3101]Debug|        "version": 1,
2023-10-29 18:11:53.1|[3101]Debug|        "real": 0,
2023-10-29 18:11:53.1|[3101]Debug|        "isRepack": false
2023-10-29 18:11:53.1|[3101]Debug|      }
2023-10-29 18:11:53.1|[3101]Debug|    },
2023-10-29 18:11:53.1|[3101]Debug|    "customFormats": [
2023-10-29 18:11:53.1|[3101]Debug|      {
2023-10-29 18:11:53.1|[3101]Debug|        "id": 8,
2023-10-29 18:11:53.1|[3101]Debug|        "name": "HDR10+"
2023-10-29 18:11:53.1|[3101]Debug|      },
2023-10-29 18:11:53.1|[3101]Debug|      {
2023-10-29 18:11:53.1|[3101]Debug|        "id": 18,
2023-10-29 18:11:53.1|[3101]Debug|        "name": "AMZN"
2023-10-29 18:11:53.1|[3101]Debug|      },
2023-10-29 18:11:53.1|[3101]Debug|      {
2023-10-29 18:11:53.1|[3101]Debug|        "id": 38,
2023-10-29 18:11:53.2|[3101]Debug|        "name": "UHD Streaming Cut"
2023-10-29 18:11:53.2|[3101]Debug|      }
2023-10-29 18:11:53.2|[3101]Debug|    ],
2023-10-29 18:11:53.2|[3101]Debug|    "customFormatScore": 550,
2023-10-29 18:11:53.2|[3101]Debug|    "mediaInfo": {
2023-10-29 18:11:53.2|[3101]Debug|      "audioBitrate": 640000,
2023-10-29 18:11:53.2|[3101]Debug|      "audioChannels": 5.1,
2023-10-29 18:11:53.2|[3101]Debug|      "audioCodec": "EAC3",
2023-10-29 18:11:53.2|[3101]Debug|      "audioLanguages": "ita/eng",
2023-10-29 18:11:53.2|[3101]Debug|      "audioStreamCount": 2,
2023-10-29 18:11:53.2|[3101]Debug|      "videoBitDepth": 10,
2023-10-29 18:11:53.2|[3101]Debug|      "videoBitrate": 0,
2023-10-29 18:11:53.2|[3101]Debug|      "videoCodec": "h265",
2023-10-29 18:11:53.2|[3101]Debug|      "videoFps": 23.976,
2023-10-29 18:11:53.2|[3101]Debug|      "videoDynamicRange": "HDR",
2023-10-29 18:11:53.2|[3101]Debug|      "videoDynamicRangeType": "HDR10Plus",
2023-10-29 18:11:53.2|[3101]Debug|      "resolution": "3840x1600",
2023-10-29 18:11:53.2|[3101]Debug|      "runTime": "46:52",
2023-10-29 18:11:53.2|[3101]Debug|      "scanType": "Progressive",
2023-10-29 18:11:53.2|[3101]Debug|      "subtitles": "ita/eng/eng/ita"
2023-10-29 18:11:53.2|[3101]Debug|    },
2023-10-29 18:11:53.2|[3101]Debug|    "qualityCutoffNotMet": true,
2023-10-29 18:11:53.2|[3101]Debug|    "id": 570
2023-10-29 18:11:53.2|[3101]Debug|  },
2023-10-29 18:11:53.2|[3101]Debug|  "hasFile": true,
2023-10-29 18:11:53.2|[3101]Debug|  "monitored": true,
2023-10-29 18:11:53.3|[3101]Debug|  "absoluteEpisodeNumber": 4,
2023-10-29 18:11:53.3|[3101]Debug|  "unverifiedSceneNumbering": false,
2023-10-29 18:11:53.3|[3101]Debug|  "series": {
2023-10-29 18:11:53.3|[3101]Debug|    "title": "Gen V",
2023-10-29 18:11:53.3|[3101]Debug|    "sortTitle": "gen v",
2023-10-29 18:11:53.3|[3101]Debug|    "status": "continuing",
2023-10-29 18:11:53.3|[3101]Debug|    "ended": false,
2023-10-29 18:11:53.3|[3101]Debug|    "overview": "At America’s only college for superheroes, gifted students put their moral boundaries to the test, competing for the university’s top ranking, and a chance to join The Seven, Vought International’s elite superhero team. When the school’s dark secrets come to light, they must decide what kind of heroes they want to become.",
2023-10-29 18:11:53.3|[3101]Debug|    "network": "Prime Video",
2023-10-29 18:11:53.3|[3101]Debug|    "airTime": "00:00",
2023-10-29 18:11:53.3|[3101]Debug|    "images": [
2023-10-29 18:11:53.3|[3101]Debug|      {
2023-10-29 18:11:53.3|[3101]Debug|        "coverType": "banner",
2023-10-29 18:11:53.3|[3101]Debug|        "remoteUrl": "https://artworks.thetvdb.com/banners/v4/series/417909/banners/64ed49c08b69e.jpg"
2023-10-29 18:11:53.3|[3101]Debug|      },
2023-10-29 18:11:53.3|[3101]Debug|      {
2023-10-29 18:11:53.3|[3101]Debug|        "coverType": "poster",
2023-10-29 18:11:53.3|[3101]Debug|        "remoteUrl": "https://artworks.thetvdb.com/banners/v4/series/417909/posters/64ec79248220e.jpg"
2023-10-29 18:11:53.3|[3101]Debug|      },
2023-10-29 18:11:53.3|[3101]Debug|      {
2023-10-29 18:11:53.3|[3101]Debug|        "coverType": "fanart",
2023-10-29 18:11:53.3|[3101]Debug|        "remoteUrl": "https://artworks.thetvdb.com/banners/v4/series/417909/backgrounds/651690018ce69.jpg"
2023-10-29 18:11:53.3|[3101]Debug|      },
2023-10-29 18:11:53.3|[3101]Debug|      {
2023-10-29 18:11:53.3|[3101]Debug|        "coverType": "clearlogo",
2023-10-29 18:11:53.3|[3101]Debug|        "remoteUrl": "https://artworks.thetvdb.com/banners/v4/series/417909/clearlogo/64ed68720b00a.png"
2023-10-29 18:11:53.3|[3101]Debug|      }
2023-10-29 18:11:53.3|[3101]Debug|    ],
2023-10-29 18:11:53.3|[3101]Debug|    "originalLanguage": {
2023-10-29 18:11:53.4|[3101]Debug|      "id": 1,
2023-10-29 18:11:53.4|[3101]Debug|      "name": "English"
2023-10-29 18:11:53.4|[3101]Debug|    },
2023-10-29 18:11:53.4|[3101]Debug|    "seasons": [
2023-10-29 18:11:53.4|[3101]Debug|      {
2023-10-29 18:11:53.4|[3101]Debug|        "seasonNumber": 0,
2023-10-29 18:11:53.4|[3101]Debug|        "monitored": false
2023-10-29 18:11:53.4|[3101]Debug|      },
2023-10-29 18:11:53.4|[3101]Debug|      {
2023-10-29 18:11:53.4|[3101]Debug|        "seasonNumber": 1,
2023-10-29 18:11:53.4|[3101]Debug|        "monitored": true
2023-10-29 18:11:53.4|[3101]Debug|      }
2023-10-29 18:11:53.4|[3101]Debug|    ],
2023-10-29 18:11:53.4|[3101]Debug|    "year": 2023,
2023-10-29 18:11:53.4|[3101]Debug|    "path": "/data/media/tv/Gen V (2023) [tvdbid-417909]",
2023-10-29 18:11:53.4|[3101]Debug|    "qualityProfileId": 5,
2023-10-29 18:11:53.4|[3101]Debug|    "seasonFolder": true,
2023-10-29 18:11:53.4|[3101]Debug|    "monitored": true,
2023-10-29 18:11:53.4|[3101]Debug|    "useSceneNumbering": false,
2023-10-29 18:11:53.4|[3101]Debug|    "runtime": 48,
2023-10-29 18:11:53.4|[3101]Debug|    "tvdbId": 417909,
2023-10-29 18:11:53.4|[3101]Debug|    "tvRageId": 0,
2023-10-29 18:11:53.4|[3101]Debug|    "tvMazeId": 62998,
2023-10-29 18:11:53.4|[3101]Debug|    "firstAired": "2023-09-29T00:00:00Z",
2023-10-29 18:11:53.4|[3101]Debug|    "lastAired": "2023-11-03T00:00:00Z",
2023-10-29 18:11:53.4|[3101]Debug|    "seriesType": "standard",
2023-10-29 18:11:53.4|[3101]Debug|    "cleanTitle": "genv",
2023-10-29 18:11:53.4|[3101]Debug|    "imdbId": "tt13159924",
2023-10-29 18:11:53.4|[3101]Debug|    "titleSlug": "gen-v",
2023-10-29 18:11:53.5|[3101]Debug|    "certification": "TV-MA",
2023-10-29 18:11:53.5|[3101]Debug|    "genres": [
2023-10-29 18:11:53.5|[3101]Debug|      "Action",
2023-10-29 18:11:53.5|[3101]Debug|      "Drama",
2023-10-29 18:11:53.5|[3101]Debug|      "Science Fiction"
2023-10-29 18:11:53.5|[3101]Debug|    ],
2023-10-29 18:11:53.5|[3101]Debug|    "tags": [
2023-10-29 18:11:53.5|[3101]Debug|      2
2023-10-29 18:11:53.5|[3101]Debug|    ],
2023-10-29 18:11:53.5|[3101]Debug|    "added": "2023-10-28T10:26:33Z",
2023-10-29 18:11:53.5|[3101]Debug|    "ratings": {
2023-10-29 18:11:53.5|[3101]Debug|      "votes": 0,
2023-10-29 18:11:53.5|[3101]Debug|      "value": 0
2023-10-29 18:11:53.5|[3101]Debug|    },
2023-10-29 18:11:53.5|[3101]Debug|    "languageProfileId": 1,
2023-10-29 18:11:53.5|[3101]Debug|    "id": 39
2023-10-29 18:11:53.5|[3101]Debug|  },
2023-10-29 18:11:53.5|[3101]Debug|  "images": [
2023-10-29 18:11:53.5|[3101]Debug|    {
2023-10-29 18:11:53.5|[3101]Debug|      "coverType": "screenshot",
2023-10-29 18:11:53.5|[3101]Debug|      "remoteUrl": "https://artworks.thetvdb.com/banners/v4/episode/9907869/screencap/64fff170161bb.jpg"
2023-10-29 18:11:53.5|[3101]Debug|    }
2023-10-29 18:11:53.5|[3101]Debug|  ],
2023-10-29 18:11:53.5|[3101]Debug|  "grabbed": false,
2023-10-29 18:11:53.5|[3101]Debug|  "id": 1468
2023-10-29 18:11:53.5|[3101]Debug|}
2023-10-29 18:11:53.8|[3101]Debug|Getting video file information for episodefile '570'. Calling Sonarr API using GET and URL 'http://localhost:8989/api/v3/episodefile/570'
2023-10-29 18:11:53.8|[3101]Debug|API returned: {
2023-10-29 18:11:53.8|[3101]Debug|  "seriesId": 39,
2023-10-29 18:11:53.8|[3101]Debug|  "seasonNumber": 1,
2023-10-29 18:11:53.8|[3101]Debug|  "relativePath": "Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv",
2023-10-29 18:11:53.8|[3101]Debug|  "path": "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv",
2023-10-29 18:11:53.8|[3101]Debug|  "size": 6670073264,
2023-10-29 18:11:53.8|[3101]Debug|  "dateAdded": "2023-10-29T07:06:56Z",
2023-10-29 18:11:53.8|[3101]Debug|  "sceneName": "Gen.V.S01E04.Tutta.la.verita.ITA.ENG.2160p.AMZN.WEB-DL.DDP5.1.HDR.H.265-MeM.GP",
2023-10-29 18:11:53.8|[3101]Debug|  "releaseGroup": "MeM",
2023-10-29 18:11:53.8|[3101]Debug|  "languages": [
2023-10-29 18:11:53.8|[3101]Debug|    {
2023-10-29 18:11:53.8|[3101]Debug|      "id": 5,
2023-10-29 18:11:53.8|[3101]Debug|      "name": "Italian"
2023-10-29 18:11:53.8|[3101]Debug|    },
2023-10-29 18:11:53.8|[3101]Debug|    {
2023-10-29 18:11:53.8|[3101]Debug|      "id": 1,
2023-10-29 18:11:53.8|[3101]Debug|      "name": "English"
2023-10-29 18:11:53.8|[3101]Debug|    }
2023-10-29 18:11:53.9|[3101]Debug|  ],
2023-10-29 18:11:53.9|[3101]Debug|  "quality": {
2023-10-29 18:11:53.9|[3101]Debug|    "quality": {
2023-10-29 18:11:53.9|[3101]Debug|      "id": 18,
2023-10-29 18:11:53.9|[3101]Debug|      "name": "WEBDL-2160p",
2023-10-29 18:11:53.9|[3101]Debug|      "source": "web",
2023-10-29 18:11:53.9|[3101]Debug|      "resolution": 2160
2023-10-29 18:11:53.9|[3101]Debug|    },
2023-10-29 18:11:53.9|[3101]Debug|    "revision": {
2023-10-29 18:11:53.9|[3101]Debug|      "version": 1,
2023-10-29 18:11:53.9|[3101]Debug|      "real": 0,
2023-10-29 18:11:53.9|[3101]Debug|      "isRepack": false
2023-10-29 18:11:53.9|[3101]Debug|    }
2023-10-29 18:11:53.9|[3101]Debug|  },
2023-10-29 18:11:53.9|[3101]Debug|  "customFormats": [
2023-10-29 18:11:53.9|[3101]Debug|    {
2023-10-29 18:11:53.9|[3101]Debug|      "id": 8,
2023-10-29 18:11:53.9|[3101]Debug|      "name": "HDR10+"
2023-10-29 18:11:53.9|[3101]Debug|    },
2023-10-29 18:11:53.9|[3101]Debug|    {
2023-10-29 18:11:53.9|[3101]Debug|      "id": 18,
2023-10-29 18:11:53.9|[3101]Debug|      "name": "AMZN"
2023-10-29 18:11:53.9|[3101]Debug|    },
2023-10-29 18:11:53.9|[3101]Debug|    {
2023-10-29 18:11:53.9|[3101]Debug|      "id": 38,
2023-10-29 18:11:54.0|[3101]Debug|      "name": "UHD Streaming Cut"
2023-10-29 18:11:54.0|[3101]Debug|    }
2023-10-29 18:11:54.0|[3101]Debug|  ],
2023-10-29 18:11:54.0|[3101]Debug|  "customFormatScore": 550,
2023-10-29 18:11:54.0|[3101]Debug|  "mediaInfo": {
2023-10-29 18:11:54.0|[3101]Debug|    "audioBitrate": 640000,
2023-10-29 18:11:54.0|[3101]Debug|    "audioChannels": 5.1,
2023-10-29 18:11:54.0|[3101]Debug|    "audioCodec": "EAC3",
2023-10-29 18:11:54.0|[3101]Debug|    "audioLanguages": "ita/eng",
2023-10-29 18:11:54.0|[3101]Debug|    "audioStreamCount": 2,
2023-10-29 18:11:54.0|[3101]Debug|    "videoBitDepth": 10,
2023-10-29 18:11:54.0|[3101]Debug|    "videoBitrate": 0,
2023-10-29 18:11:54.0|[3101]Debug|    "videoCodec": "h265",
2023-10-29 18:11:54.0|[3101]Debug|    "videoFps": 23.976,
2023-10-29 18:11:54.0|[3101]Debug|    "videoDynamicRange": "HDR",
2023-10-29 18:11:54.0|[3101]Debug|    "videoDynamicRangeType": "HDR10Plus",
2023-10-29 18:11:54.0|[3101]Debug|    "resolution": "3840x1600",
2023-10-29 18:11:54.0|[3101]Debug|    "runTime": "46:52",
2023-10-29 18:11:54.0|[3101]Debug|    "scanType": "Progressive",
2023-10-29 18:11:54.0|[3101]Debug|    "subtitles": "ita/eng/eng/ita"
2023-10-29 18:11:54.0|[3101]Debug|  },
2023-10-29 18:11:54.0|[3101]Debug|  "qualityCutoffNotMet": true,
2023-10-29 18:11:54.0|[3101]Debug|  "id": 570
2023-10-29 18:11:54.0|[3101]Debug|}
2023-10-29 18:11:54.1|[3101]Debug|Detected quality 'WEBDL-2160p'
2023-10-29 18:11:54.2|[3101]Debug|Detected release group 'MeM'
2023-10-29 18:11:54.2|[3101]Debug|Detected language profile '(1) Deprecated'
2023-10-29 18:11:54.2|[3101]Debug|Detected language profile language(s) '(1) English'
2023-10-29 18:11:54.3|[3101]Debug|Mapped profile language(s) 'English' to ISO639-2 code string ':eng'
2023-10-29 18:11:54.3|[3101]Info|Sonarr event: Download, Video: /data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv, Size: 6.212G, AudioKeep: :jpn:eng:zho:chi:und, SubsKeep: :eng:zho:chi
2023-10-29 18:11:54.3|[3101]Debug|Executing: /usr/bin/mkvmerge -J "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv"
2023-10-29 18:11:55.0|[3101]Debug|mkvmerge returned: {
2023-10-29 18:11:55.0|[3101]Debug|  "attachments": [],
2023-10-29 18:11:55.0|[3101]Debug|  "chapters": [
2023-10-29 18:11:55.0|[3101]Debug|    {
2023-10-29 18:11:55.0|[3101]Debug|      "num_entries": 37
2023-10-29 18:11:55.0|[3101]Debug|    }
2023-10-29 18:11:55.0|[3101]Debug|  ],
2023-10-29 18:11:55.0|[3101]Debug|  "container": {
2023-10-29 18:11:55.0|[3101]Debug|    "properties": {
2023-10-29 18:11:55.0|[3101]Debug|      "container_type": 17,
2023-10-29 18:11:55.0|[3101]Debug|      "date_local": "2023-10-06T19:40:49+11:00",
2023-10-29 18:11:55.0|[3101]Debug|      "date_utc": "2023-10-06T08:40:49Z",
2023-10-29 18:11:55.0|[3101]Debug|      "duration": 2812224000000,
2023-10-29 18:11:55.0|[3101]Debug|      "is_providing_timestamps": true,
2023-10-29 18:11:55.0|[3101]Debug|      "muxing_application": "libebml v1.4.4 + libmatroska v1.7.1",
2023-10-29 18:11:55.1|[3101]Debug|      "segment_uid": "c56444fe3941dd40d8d2960c04c0464b",
2023-10-29 18:11:55.1|[3101]Debug|      "writing_application": "mkvmerge v77.0 ('Elemental') 64-bit"
2023-10-29 18:11:55.1|[3101]Debug|    },
2023-10-29 18:11:55.1|[3101]Debug|    "recognized": true,
2023-10-29 18:11:55.1|[3101]Debug|    "supported": true,
2023-10-29 18:11:55.1|[3101]Debug|    "type": "Matroska"
2023-10-29 18:11:55.1|[3101]Debug|  },
2023-10-29 18:11:55.1|[3101]Debug|  "errors": [],
2023-10-29 18:11:55.1|[3101]Debug|  "file_name": "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv",
2023-10-29 18:11:55.1|[3101]Debug|  "global_tags": [],
2023-10-29 18:11:55.1|[3101]Debug|  "identification_format_version": 18,
2023-10-29 18:11:55.1|[3101]Debug|  "track_tags": [],
2023-10-29 18:11:55.1|[3101]Debug|  "tracks": [
2023-10-29 18:11:55.1|[3101]Debug|    {
2023-10-29 18:11:55.1|[3101]Debug|      "codec": "HEVC/H.265/MPEG-H",
2023-10-29 18:11:55.2|[3101]Debug|      "id": 0,
2023-10-29 18:11:55.2|[3101]Debug|      "properties": {
2023-10-29 18:11:55.2|[3101]Debug|        "codec_id": "V_MPEGH/ISO/HEVC",
2023-10-29 18:11:55.2|[3101]Debug|        "codec_private_data": "01022000000090000000000096f000fffdfafa00000f03200001001940010c01ffff022000000300900000030000030096958a0240210001003b420101022000000300900000030000030096a001e0200641365958a924211af016a1220120800001f480002ee0308a492f00009896800017d7864022000100074401c1769be624",
2023-10-29 18:11:55.2|[3101]Debug|        "codec_private_length": 129,
2023-10-29 18:11:55.2|[3101]Debug|        "color_matrix_coefficients": 9,
2023-10-29 18:11:55.2|[3101]Debug|        "color_primaries": 9,
2023-10-29 18:11:55.2|[3101]Debug|        "color_transfer_characteristics": 16,
2023-10-29 18:11:55.2|[3101]Debug|        "default_duration": 41708333,
2023-10-29 18:11:55.2|[3101]Debug|        "default_track": true,
2023-10-29 18:11:55.2|[3101]Debug|        "display_dimensions": "3840x1600",
2023-10-29 18:11:55.2|[3101]Debug|        "display_unit": 0,
2023-10-29 18:11:55.2|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.2|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.2|[3101]Debug|        "language": "und",
2023-10-29 18:11:55.3|[3101]Debug|        "language_ietf": "und",
2023-10-29 18:11:55.3|[3101]Debug|        "minimum_timestamp": 0,
2023-10-29 18:11:55.3|[3101]Debug|        "num_index_entries": 1405,
2023-10-29 18:11:55.3|[3101]Debug|        "number": 1,
2023-10-29 18:11:55.3|[3101]Debug|        "packetizer": "mpegh_p2_video",
2023-10-29 18:11:55.3|[3101]Debug|        "pixel_dimensions": "3840x1600",
2023-10-29 18:11:55.3|[3101]Debug|        "uid": 8842696616184237133
2023-10-29 18:11:55.3|[3101]Debug|      },
2023-10-29 18:11:55.3|[3101]Debug|      "type": "video"
2023-10-29 18:11:55.3|[3101]Debug|    },
2023-10-29 18:11:55.3|[3101]Debug|    {
2023-10-29 18:11:55.3|[3101]Debug|      "codec": "E-AC-3",
2023-10-29 18:11:55.3|[3101]Debug|      "id": 1,
2023-10-29 18:11:55.3|[3101]Debug|      "properties": {
2023-10-29 18:11:55.3|[3101]Debug|        "audio_channels": 6,
2023-10-29 18:11:55.3|[3101]Debug|        "audio_sampling_frequency": 48000,
2023-10-29 18:11:55.3|[3101]Debug|        "codec_id": "A_EAC3",
2023-10-29 18:11:55.3|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.3|[3101]Debug|        "default_duration": 32000000,
2023-10-29 18:11:55.3|[3101]Debug|        "default_track": true,
2023-10-29 18:11:55.3|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.3|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.4|[3101]Debug|        "language": "ita",
2023-10-29 18:11:55.4|[3101]Debug|        "language_ietf": "it",
2023-10-29 18:11:55.4|[3101]Debug|        "minimum_timestamp": 0,
2023-10-29 18:11:55.4|[3101]Debug|        "num_index_entries": 0,
2023-10-29 18:11:55.4|[3101]Debug|        "number": 2,
2023-10-29 18:11:55.4|[3101]Debug|        "uid": 4894566486085717932
2023-10-29 18:11:55.4|[3101]Debug|      },
2023-10-29 18:11:55.4|[3101]Debug|      "type": "audio"
2023-10-29 18:11:55.4|[3101]Debug|    },
2023-10-29 18:11:55.4|[3101]Debug|    {
2023-10-29 18:11:55.4|[3101]Debug|      "codec": "E-AC-3",
2023-10-29 18:11:55.4|[3101]Debug|      "id": 2,
2023-10-29 18:11:55.4|[3101]Debug|      "properties": {
2023-10-29 18:11:55.4|[3101]Debug|        "audio_channels": 6,
2023-10-29 18:11:55.4|[3101]Debug|        "audio_sampling_frequency": 48000,
2023-10-29 18:11:55.4|[3101]Debug|        "codec_id": "A_EAC3",
2023-10-29 18:11:55.4|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.4|[3101]Debug|        "default_duration": 32000000,
2023-10-29 18:11:55.4|[3101]Debug|        "default_track": false,
2023-10-29 18:11:55.4|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.4|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.4|[3101]Debug|        "language": "eng",
2023-10-29 18:11:55.4|[3101]Debug|        "language_ietf": "en-US",
2023-10-29 18:11:55.4|[3101]Debug|        "minimum_timestamp": 0,
2023-10-29 18:11:55.4|[3101]Debug|        "num_index_entries": 0,
2023-10-29 18:11:55.5|[3101]Debug|        "number": 3,
2023-10-29 18:11:55.5|[3101]Debug|        "uid": 9807656941485364320
2023-10-29 18:11:55.5|[3101]Debug|      },
2023-10-29 18:11:55.5|[3101]Debug|      "type": "audio"
2023-10-29 18:11:55.5|[3101]Debug|    },
2023-10-29 18:11:55.5|[3101]Debug|    {
2023-10-29 18:11:55.5|[3101]Debug|      "codec": "SubRip/SRT",
2023-10-29 18:11:55.5|[3101]Debug|      "id": 3,
2023-10-29 18:11:55.5|[3101]Debug|      "properties": {
2023-10-29 18:11:55.5|[3101]Debug|        "codec_id": "S_TEXT/UTF8",
2023-10-29 18:11:55.5|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.5|[3101]Debug|        "default_track": true,
2023-10-29 18:11:55.5|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.5|[3101]Debug|        "encoding": "UTF-8",
2023-10-29 18:11:55.5|[3101]Debug|        "forced_track": true,
2023-10-29 18:11:55.5|[3101]Debug|        "language": "ita",
2023-10-29 18:11:55.5|[3101]Debug|        "language_ietf": "it",
2023-10-29 18:11:55.5|[3101]Debug|        "minimum_timestamp": 9135000000,
2023-10-29 18:11:55.5|[3101]Debug|        "num_index_entries": 1,
2023-10-29 18:11:55.5|[3101]Debug|        "number": 4,
2023-10-29 18:11:55.5|[3101]Debug|        "text_subtitles": true,
2023-10-29 18:11:55.5|[3101]Debug|        "track_name": "Forced",
2023-10-29 18:11:55.5|[3101]Debug|        "uid": 13409024806094517386
2023-10-29 18:11:55.5|[3101]Debug|      },
2023-10-29 18:11:55.5|[3101]Debug|      "type": "subtitles"
2023-10-29 18:11:55.5|[3101]Debug|    },
2023-10-29 18:11:55.6|[3101]Debug|    {
2023-10-29 18:11:55.6|[3101]Debug|      "codec": "SubRip/SRT",
2023-10-29 18:11:55.6|[3101]Debug|      "id": 4,
2023-10-29 18:11:55.6|[3101]Debug|      "properties": {
2023-10-29 18:11:55.6|[3101]Debug|        "codec_id": "S_TEXT/UTF8",
2023-10-29 18:11:55.6|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.6|[3101]Debug|        "default_track": false,
2023-10-29 18:11:55.6|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.6|[3101]Debug|        "encoding": "UTF-8",
2023-10-29 18:11:55.6|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.6|[3101]Debug|        "language": "eng",
2023-10-29 18:11:55.6|[3101]Debug|        "language_ietf": "en-US",
2023-10-29 18:11:55.6|[3101]Debug|        "minimum_timestamp": 6882000000,
2023-10-29 18:11:55.6|[3101]Debug|        "num_index_entries": 833,
2023-10-29 18:11:55.6|[3101]Debug|        "number": 5,
2023-10-29 18:11:55.6|[3101]Debug|        "text_subtitles": true,
2023-10-29 18:11:55.6|[3101]Debug|        "uid": 6003752079541938169
2023-10-29 18:11:55.6|[3101]Debug|      },
2023-10-29 18:11:55.6|[3101]Debug|      "type": "subtitles"
2023-10-29 18:11:55.6|[3101]Debug|    },
2023-10-29 18:11:55.6|[3101]Debug|    {
2023-10-29 18:11:55.6|[3101]Debug|      "codec": "SubRip/SRT",
2023-10-29 18:11:55.6|[3101]Debug|      "id": 5,
2023-10-29 18:11:55.6|[3101]Debug|      "properties": {
2023-10-29 18:11:55.6|[3101]Debug|        "codec_id": "S_TEXT/UTF8",
2023-10-29 18:11:55.6|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.7|[3101]Debug|        "default_track": false,
2023-10-29 18:11:55.7|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.7|[3101]Debug|        "encoding": "UTF-8",
2023-10-29 18:11:55.7|[3101]Debug|        "flag_hearing_impaired": true,
2023-10-29 18:11:55.7|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.7|[3101]Debug|        "language": "eng",
2023-10-29 18:11:55.7|[3101]Debug|        "language_ietf": "en-US",
2023-10-29 18:11:55.7|[3101]Debug|        "minimum_timestamp": 6882000000,
2023-10-29 18:11:55.7|[3101]Debug|        "num_index_entries": 893,
2023-10-29 18:11:55.7|[3101]Debug|        "number": 6,
2023-10-29 18:11:55.7|[3101]Debug|        "text_subtitles": true,
2023-10-29 18:11:55.7|[3101]Debug|        "track_name": "SDH",
2023-10-29 18:11:55.7|[3101]Debug|        "uid": 4227797072326557314
2023-10-29 18:11:55.7|[3101]Debug|      },
2023-10-29 18:11:55.7|[3101]Debug|      "type": "subtitles"
2023-10-29 18:11:55.7|[3101]Debug|    },
2023-10-29 18:11:55.7|[3101]Debug|    {
2023-10-29 18:11:55.7|[3101]Debug|      "codec": "SubRip/SRT",
2023-10-29 18:11:55.7|[3101]Debug|      "id": 6,
2023-10-29 18:11:55.7|[3101]Debug|      "properties": {
2023-10-29 18:11:55.7|[3101]Debug|        "codec_id": "S_TEXT/UTF8",
2023-10-29 18:11:55.7|[3101]Debug|        "codec_private_length": 0,
2023-10-29 18:11:55.7|[3101]Debug|        "default_track": false,
2023-10-29 18:11:55.7|[3101]Debug|        "enabled_track": true,
2023-10-29 18:11:55.7|[3101]Debug|        "encoding": "UTF-8",
2023-10-29 18:11:55.7|[3101]Debug|        "forced_track": false,
2023-10-29 18:11:55.7|[3101]Debug|        "language": "ita",
2023-10-29 18:11:55.7|[3101]Debug|        "language_ietf": "it-IT",
2023-10-29 18:11:55.7|[3101]Debug|        "minimum_timestamp": 6465000000,
2023-10-29 18:11:55.7|[3101]Debug|        "num_index_entries": 629,
2023-10-29 18:11:55.8|[3101]Debug|        "number": 7,
2023-10-29 18:11:55.8|[3101]Debug|        "text_subtitles": true,
2023-10-29 18:11:55.8|[3101]Debug|        "uid": 7482613379267327418
2023-10-29 18:11:55.8|[3101]Debug|      },
2023-10-29 18:11:55.8|[3101]Debug|      "type": "subtitles"
2023-10-29 18:11:55.8|[3101]Debug|    }
2023-10-29 18:11:55.8|[3101]Debug|  ],
2023-10-29 18:11:55.8|[3101]Debug|  "warnings": []
2023-10-29 18:11:55.8|[3101]Debug|}
2023-10-29 18:11:55.9|[3101]Debug|Chapters: 37 entries
2023-10-29 18:11:55.9|[3101]Debug|Track ID 0: video (HEVC/H.265/MPEG-H) [codec_id:V_MPEGH/ISO/HEVC codec_private_data:01022000000090000000000096f000fffdfafa00000f03200001001940010c01ffff022000000300900000030000030096958a0240210001003b420101022000000300900000030000030096a001e0200641365958a924211af016a1220120800001f480002ee0308a492f00009896800017d7864022000100074401c1769be624 codec_private_length:129 color_matrix_coefficients:9 color_primaries:9 color_transfer_characteristics:16 default_duration:41708333 default_track:true display_dimensions:3840x1600 display_unit:0 enabled_track:true forced_track:false language:und language_ietf:und minimum_timestamp:0 num_index_entries:1405 number:1 packetizer:mpegh_p2_video pixel_dimensions:3840x1600 uid:8842696616184237000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 1: audio (E-AC-3) [audio_channels:6 audio_sampling_frequency:48000 codec_id:A_EAC3 codec_private_length:0 default_duration:32000000 default_track:true enabled_track:true forced_track:false language:ita language_ietf:it minimum_timestamp:0 num_index_entries:0 number:2 uid:4894566486085718000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 2: audio (E-AC-3) [audio_channels:6 audio_sampling_frequency:48000 codec_id:A_EAC3 codec_private_length:0 default_duration:32000000 default_track:false enabled_track:true forced_track:false language:eng language_ietf:en-US minimum_timestamp:0 num_index_entries:0 number:3 uid:9807656941485365000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 3: subtitles (SubRip/SRT) [codec_id:S_TEXT/UTF8 codec_private_length:0 default_track:true enabled_track:true encoding:UTF-8 forced_track:true language:ita language_ietf:it minimum_timestamp:9135000000 num_index_entries:1 number:4 text_subtitles:true track_name:Forced uid:13409024806094518000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 4: subtitles (SubRip/SRT) [codec_id:S_TEXT/UTF8 codec_private_length:0 default_track:false enabled_track:true encoding:UTF-8 forced_track:false language:eng language_ietf:en-US minimum_timestamp:6882000000 num_index_entries:833 number:5 text_subtitles:true uid:6003752079541938000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 5: subtitles (SubRip/SRT) [codec_id:S_TEXT/UTF8 codec_private_length:0 default_track:false enabled_track:true encoding:UTF-8 flag_hearing_impaired:true forced_track:false language:eng language_ietf:en-US minimum_timestamp:6882000000 num_index_entries:893 number:6 text_subtitles:true track_name:SDH uid:4227797072326557000]
2023-10-29 18:11:55.9|[3101]Debug|Track ID 6: subtitles (SubRip/SRT) [codec_id:S_TEXT/UTF8 codec_private_length:0 default_track:false enabled_track:true encoding:UTF-8 forced_track:false language:ita language_ietf:it-IT minimum_timestamp:6465000000 num_index_entries:629 number:7 text_subtitles:true uid:7482613379267327000]
2023-10-29 18:11:55.9|[3101]Info|Original tracks: 7 (audio: 2, subtitles: 4)
2023-10-29 18:11:55.9|[3101]Info|Chapters: 37
2023-10-29 18:11:55.9|[3101]Debug|i:1 Track ID:0 Type:video Lang:und Codec:(HEVC/H.265/MPEG-H)
2023-10-29 18:11:55.9|[3101]Debug|i:2 Track ID:1 Type:audio Lang:ita Codec:(E-AC-3)
2023-10-29 18:11:55.9|[3101]Debug|i:3 Track ID:2 Type:audio Lang:eng Codec:(E-AC-3)
2023-10-29 18:11:55.9|[3101]Info|Keeping audio track 2: eng (E-AC-3)
2023-10-29 18:11:55.9|[3101]Debug|i:4 Track ID:3 Type:subtitles Lang:ita Codec:(SubRip/SRT)
2023-10-29 18:11:55.9|[3101]Debug|i:5 Track ID:4 Type:subtitles Lang:eng Codec:(SubRip/SRT)
2023-10-29 18:11:55.9|[3101]Info|Keeping subtitles track 4: eng (SubRip/SRT)
2023-10-29 18:11:55.9|[3101]Debug|i:6 Track ID:5 Type:subtitles Lang:eng Codec:(SubRip/SRT)
2023-10-29 18:11:55.9|[3101]Info|Keeping subtitles track 5: eng (SubRip/SRT)
2023-10-29 18:11:56.0|[3101]Debug|i:7 Track ID:6 Type:subtitles Lang:ita Codec:(SubRip/SRT)
2023-10-29 18:11:56.0|[3101]Info|Removed audio tracks: 1: ita (E-AC-3)
2023-10-29 18:11:56.0|[3101]Info|Removed subtitles tracks: 3: ita (SubRip/SRT),6: ita (SubRip/SRT)
2023-10-29 18:11:56.0|[3101]Info|Kept tracks: 4 (audio: 1, subtitles: 2)
2023-10-29 18:11:56.0|[3101]Debug|Executing: nice /usr/bin/mkvmerge --title "Gen V 01x04 - The Whole Truth" -q -o "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.tmp" -a 2 -s 4,5 "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv"
2023-10-29 18:13:52.2|[3101]Debug|awk exited with code: 0
2023-10-29 18:13:52.2|[3101]Debug|Deleting or recycling "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv". Calling Sonarr API using DELETE and URL 'http://localhost:8989/api/v3/episodefile/570'
2023-10-29 18:18:19.6|[3101]Debug|API returned: 
2023-10-29 18:18:19.7|[3101]Debug|Renaming: "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.tmp" to "/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.mkv"
2023-10-29 18:18:19.7|[3101]mv: cannot stat '/data/media/tv/Gen V (2023) [tvdbid-417909]/Season 01/Gen V (2023) - S01E04 - The Whole Truth [AMZN WEBDL-2160p][HDR10Plus][EAC3 5.1][h265]-MeM.tmp': No such file or directory

Reorder MKV make to better work with other Connectors

Currently, a temporary file is created during remuxing that has a ".new.mkv" extension. Due to Radarr not executing Connectors in any particular order, this can have the effect of having other Connectors act on this temporary file.

Example
When the Kodi (XBMC) connector is also configured, two movies of the same name will be indexed, one with the original filename and one with .new.mkv extension

Fix Suggestion

Reorder the remux, so that the original file is first renamed to something without a common video extension, and have the destination video name use the final name.

URL Base breaks API access (was "'Original' language not respected by -org-eng script")

So I've had /usr/local/bin/striptracks-org-eng.sh set as my script to use for a while now but I don't get too many non-English movies so I don't know if this is a recent breakage/misconfiguration or not.

The movie in question is Audition; TMDB shows the proper original lang is Japanese. Based on my understanding of the striptracks-org-eng.sh script, this means anything other than Japanese or English would be culled.

What actually happened is only the English track (which happens to just be commentary as there is no English dub) was kept.

radarr log of the events

2024-01-01 17:01:35.5|Info|DownloadService|Report for Audition (1999) sent to Transmission from indexer kickasstorrents.to (Prowlarr). Audition (1999) aka Ōdishon aka オーディション (Arrow Remastered 1080p BluRay x265 HEVC 10bit AAC 5 1 Commentary) Takashi Miike Ryo Ishibashi Eihi Shiina Jun Kunimura
2024-01-01 17:09:15.5|Info|MovieService|Assigning file [Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv] to movie [[Audition (1999)][tt0235198, 11075]]
2024-01-01 17:09:15.9|Error|striptracks-org-eng.sh|Warn|The 'movie' API with id 41 returned a false hasFile.
2024-01-01 17:09:59.3|Error|striptracks-org-eng.sh|Warn|Script timed out waiting on Radarr job ID . Last status was: 
2024-01-01 17:11:05.4|Info|MoveMovieService|Moving Audition from '/movies/Audition (1997) [1080p]' to '/movies/Audition (1999) [1080p]'
2024-01-01 17:11:05.4|Info|MoveMovieService|Audition moved successfully to /movies/Audition (1999) [1080p]

striptracks log

2024-1-1 17:09:15.9|[1028]Warn|The 'movie' API with id 41 returned a false hasFile.
2024-1-1 17:09:15.9|[1028]Info|Radarr event: Download, Video: /movies/Audition (1997) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv, Size: 9.199G, AudioKeep: :eng:und, SubsKeep: :eng:und
2024-1-1 17:09:16.1|[1028]Info|Original tracks: 6 (audio: 3, subtitles: 2)
2024-1-1 17:09:16.1|[1028]Info|Chapters: 12
2024-1-1 17:09:16.1|[1028]Info|Keeping audio track 3: eng (AAC)
2024-1-1 17:09:16.1|[1028]Info|Keeping subtitles track 4: eng (SubRip/SRT)
2024-1-1 17:09:16.1|[1028]Info|Keeping subtitles track 5: eng (VobSub)
2024-1-1 17:09:16.1|[1028]Info|Removed audio tracks: 1: jpn (AAC),2: jpn (AAC)
2024-1-1 17:09:16.1|[1028]Info|Kept tracks: 4 (audio: 1, subtitles: 2)
2024-1-1 17:09:42.1|[1028]Info|New size: 8.578G
2024-1-1 17:09:42.1|[1028]Info|Calling Radarr API to rescan movie
2024-1-1 17:09:59.3|[1028]Warn|Script timed out waiting on Radarr job ID . Last status was: 
2024-1-1 17:09:59.3|[1028]Info|Completed in 0m 44s
2024-1-1 17:17:15.5|[1453]Info|Radarr event: Test
2024-1-1 17:17:15.5|[1453]Info|Script was test executed successfully.
2024-1-1 17:17:15.5|[1453]Info|Completed in 0m 0s

Radarr is ver 5.2.6.8376 (linuxserver.io docker image)
Strip Tracks Ver image

As there is no org-eng-debug wrapper I made one (just added the -d flag with no other changes; below are the relevant logs.

radarr log

2024-01-01 18:05:33.8|Error|striptracks-org-eng-debug.sh|Debug|Enabling debug logging level 1. Starting Radarr run for: UNKNOWN (UNKNOWN)
2024-01-01 18:05:36.7|Error|striptracks-org-eng-debug.sh|Debug|Enabling debug logging level 1. Starting Radarr run for: UNKNOWN (UNKNOWN)
2024-01-01 18:06:53.4|Info|RecycleBinProvider|Recycling Bin has not been configured, deleting permanently. /movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv
2024-01-01 18:06:53.7|Info|RecycleBinProvider|Recycling Bin has not been configured, deleting permanently. /movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.nfo
2024-01-01 18:07:11.2|Info|MovieService|Assigning file [Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv] to movie [[Audition (1999)][tt0235198, 11075]]
2024-01-01 18:07:11.3|Error|striptracks-org-eng-debug.sh|Debug|Enabling debug logging level 1. Starting Radarr run for: Audition (1999)
2024-01-01 18:07:11.5|Error|striptracks-org-eng-debug.sh|Warn|The 'movie' API with id 1276 returned a false hasFile.
2024-01-01 18:07:45.0|Error|striptracks-org-eng-debug.sh|Warn|Script timed out waiting on Radarr job ID . Last status was: 

striptracks-org-eng-debug.sh log

2024-1-1 18:07:11.3|[2735]Debug|Enabling debug logging level 1. Starting Radarr run for: Audition (1999)
2024-1-1 18:07:11.3|[2735]Debug|Reading from Radarr config file '/config/config.xml'
2024-1-1 18:07:11.4|[2735]Debug|Getting Radarr version. Calling Radarr API using GET and URL 'http://localhost:7878//radarr/api/v3/system/status'
2024-1-1 18:07:11.4|[2735]Debug|Detected Radarr version 
2024-1-1 18:07:11.4|[2735]Debug|Using temporary file "/movies/Audition (1999) [1080p]/Audit.tmp.l7kdMU"
2024-1-1 18:07:11.4|[2735]Debug|Getting list of language codes. Calling Radarr API using GET and URL 'http://localhost:7878//radarr/api/v3/language'
2024-1-1 18:07:11.4|[2735]Debug|Getting list of quality profiles. Calling Radarr API using GET and URL 'http://localhost:7878//radarr/api/v3/qualityProfile'
2024-1-1 18:07:11.5|[2735]Debug|Getting video information for movie '1276'. Calling Radarr API using GET and URL 'http://localhost:7878//radarr/api/v3/movie/1276'
2024-1-1 18:07:11.5|[2735]Warn|The 'movie' API with id 1276 returned a false hasFile.
2024-1-1 18:07:11.5|[2735]Debug|Command line ':org' code specified for audio. Changing ':org:eng:und' to ':eng:und'
2024-1-1 18:07:11.5|[2735]Info|Radarr event: Download, Video: /movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv, Size: 9.199G, AudioKeep: :eng:und, SubsKeep: :eng:und
2024-1-1 18:07:11.5|[2735]Debug|Executing: /usr/bin/mkvmerge -J "/movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv"
2024-1-1 18:07:11.6|[2735]Debug|Chapters: 12 entries
2024-1-1 18:07:11.6|[2735]Debug|Track ID 0: video (HEVC/H.265/MPEG-H) [codec_id:V_MPEGH/ISO/HEVC codec_private_data:01022000000090000000000078f000fcfdfafa00000f04200001001940010c01ffff022000000300900000030000030078998a0240210001002f420101022000000300900000030000030078a003c0801047db65998a9246d2f016a020202080000003008000000c0422000100064401c171b31227000109034e0105fffffffffffffffffe2ca2de09b51747dbbb55a4fe7fc2fc4e7832363520286275696c642031393929202d20332e352b312d6630633130323262363a5b4c696e75785d5b4743432031302e322e305d5b3634206269745d203130626974202d20482e3236352f4845564320636f646563202d20436f7079726967687420323031332d3230313820286329204d756c7469636f7265776172652c20496e63202d20687474703a2f2f783236352e6f7267202d206f7074696f6e733a2063707569643d31313131303339206672616d652d746872656164733d352077707020706d6f646520706d65206e6f2d70736e72206e6f2d7373696d206c6f672d6c6576656c3d322062697464657074683d313020696e7075742d6373703d31206670733d32342f3120696e7075742d7265733d31393230783130333620696e7465726c6163653d3020746f74616c2d6672616d65733d30206c6576656c2d6964633d3020686967682d746965723d31207568642d62643d30207265663d35206e6f2d616c6c6f772d6e6f6e2d636f6e666f726d616e6365206e6f2d7265706561742d6865616465727320616e6e657862206e6f2d617564206e6f2d68726420696e666f20686173683d30206e6f2d74656d706f72616c2d6c6179657273206f70656e2d676f70206d696e2d6b6579696e743d3234206b6579696e743d32343020676f702d6c6f6f6b61686561643d3020626672616d65733d3820622d61646170743d3220622d707972616d696420626672616d652d626961733d302072632d6c6f6f6b61686561643d3430206c6f6f6b61686561642d736c696365733d30207363656e656375743d343020686973742d7363656e656375743d30207261646c3d30206e6f2d73706c696365206e6f2d696e7472612d72656672657368206374753d3634206d696e2d63752d73697a653d38207265637420616d70206d61782d74752d73697a653d33322074752d696e7465722d64657074683d332074752d696e7472612d64657074683d33206c696d69742d74753d302072646f712d6c6576656c3d322064796e616d69632d72643d302e3030206e6f2d7373696d2d7264207369676e68696465206e6f2d74736b6970206e722d696e7472613d30206e722d696e7465723d30206e6f2d636f6e73747261696e65642d696e747261207374726f6e672d696e7472612d736d6f6f7468696e67206d61782d6d657267653d35206c696d69742d726566733d30206e6f2d6c696d69742d6d6f646573206d653d33207375626d653d34206d6572616e67653d35372074656d706f72616c2d6d7670206e6f2d6672616d652d647570206e6f2d686d6520776569676874702077656967687462206e6f2d616e616c797a652d7372632d70696373206465626c6f636b3d303a30206e6f2d73616f206e6f2d73616f2d6e6f6e2d6465626c6f636b2072643d362073656c6563746976652d73616f3d30206e6f2d6561726c792d736b6970206e6f2d72736b6970206e6f2d666173742d696e747261206e6f2d74736b69702d66617374206e6f2d63752d6c6f73736c65737320622d696e747261206e6f2d73706c697472642d736b697020726470656e616c74793d30207073792d72643d342e3030207073792d72646f713d31302e3030206e6f2d72642d726566696e65206e6f2d6c6f73736c65737320636271706f6666733d3020637271706f6666733d302072633d61627220626974726174653d31303530302071636f6d703d302e3630207170737465703d312073746174732d77726974653d302073746174732d726561643d322063706c78626c75723d32302e302071626c75723d302e35206970726174696f3d312e3130207062726174696f3d312e30302061712d6d6f64653d302061712d737472656e6774683d302e3030206e6f2d637574726565207a6f6e652d636f756e743d30206e6f2d7374726963742d6362722071672d73697a653d36342072632d677261696e2071706d61783d36392071706d696e3d3020636f6e73742d766276207361723d31206f7665727363616e3d3020766964656f666f726d61743d352072616e67653d3020636f6c6f727072696d3d31207472616e736665723d3120636f6c6f726d61747269783d31206368726f6d616c6f633d3020646973706c61792d77696e646f773d3020636c6c3d302c30206d696e2d6c756d613d30206d61782d6c756d613d31303233206c6f67322d6d61782d706f632d6c73623d38207675692d74696d696e672d696e666f207675692d6872642d696e666f20736c696365733d31206e6f2d6f70742d71702d707073206e6f2d6f70742d7265662d6c6973742d6c656e6774682d707073206e6f2d6d756c74692d706173732d6f70742d727073207363656e656375742d626961733d302e303520686973742d7468726573686f6c643d302e3033206e6f2d6f70742d63752d64656c74612d7170206e6f2d61712d6d6f74696f6e206e6f2d6864723130206e6f2d68647231302d6f7074206e6f2d6468647231302d6f7074206e6f2d6964722d7265636f766572792d73656920616e616c797369732d72657573652d6c6576656c3d3020616e616c797369732d736176652d72657573652d6c6576656c3d3020616e616c797369732d6c6f61642d72657573652d6c6576656c3d30207363616c652d666163746f723d3020726566696e652d696e7472613d3020726566696e652d696e7465723d3020726566696e652d6d763d3120726566696e652d6374752d646973746f7274696f6e3d30206e6f2d6c696d69742d73616f206374752d696e666f3d30206e6f2d6c6f77706173732d64637420726566696e652d616e616c797369732d747970653d3020636f70792d7069633d31206d61782d617573697a652d666163746f723d312e30206e6f2d64796e616d69632d726566696e65206e6f2d73696e676c652d736569206e6f2d686576632d6171206e6f2d737674206e6f2d6669656c642071702d61646170746174696f6e2d72616e67653d312e3030207363656e656375742d61776172652d71703d30636f6e666f726d616e63652d77696e646f772d6f6666736574732072696768743d3020626f74746f6d3d30206465636f6465722d6d61782d726174653d30206e6f2d7662762d6c6976652d6d756c74692d7061737380 codec_private_length:2428 color_matrix_coefficients:1 color_primaries:1 color_range:1 color_transfer_characteristics:1 default_duration:41666666 default_track:true display_dimensions:1920x1036 display_unit:0 enabled_track:true forced_track:false language:und minimum_timestamp:21000000 num_index_entries:952 number:1 packetizer:mpegh_p2_video pixel_dimensions:1920x1036 uid:11233738002489688000]
2024-1-1 18:07:11.6|[2735]Debug|Track ID 1: audio (AAC) [audio_channels:6 audio_sampling_frequency:48000 codec_id:A_AAC codec_private_data:11b056e500 codec_private_length:5 default_duration:21333333 default_track:true enabled_track:true forced_track:false language:jpn minimum_timestamp:0 num_index_entries:0 number:2 track_name:Original\sJapanese\stheatrical\s5.1 uid:15331821077659617000]
2024-1-1 18:07:11.6|[2735]Debug|Track ID 2: audio (AAC) [audio_channels:2 audio_sampling_frequency:48000 codec_id:A_AAC codec_private_data:119056e500 codec_private_length:5 default_duration:21333333 default_track:false enabled_track:true forced_track:false language:jpn minimum_timestamp:0 num_index_entries:0 number:3 track_name:Commentary\swith\sdirector\sTakashi\sMiike\sand\sscreenwriter\sDaisuke\sTengan uid:13627825006079668000]
2024-1-1 18:07:11.6|[2735]Debug|Track ID 3: audio (AAC) [audio_channels:2 audio_sampling_frequency:48000 codec_id:A_AAC codec_private_data:119056e500 codec_private_length:5 default_duration:21333333 default_track:false enabled_track:true forced_track:false language:eng minimum_timestamp:0 num_index_entries:0 number:4 track_name:Commentary\sby\sMiike\sbiographer\sTom\sMes uid:7566065560638655000]
2024-1-1 18:07:11.6|[2735]Debug|Track ID 4: subtitles (SubRip/SRT) [codec_id:S_TEXT/UTF8 codec_private_length:0 default_track:false enabled_track:true encoding:UTF-8 forced_track:false language:eng num_index_entries:855 number:5 text_subtitles:true track_name:English uid:5929036242854758000]
2024-1-1 18:07:11.6|[2735]Debug|Track ID 5: subtitles (VobSub) [codec_id:S_VOBSUB codec_private_data:73697a653a203139323078313038300a6f72673a20302c20300a7363616c653a20313030252c20313030250a616c7068613a20313030250a736d6f6f74683a204f46460a66616465696e2f6f75743a20302c20300a616c69676e3a204f4646206174204c45465420544f500a74696d65206f66667365743a20300a666f7263656420737562733a204f46460a70616c657474653a203030303030302c206630663066302c206363636363632c203939393939392c203333333366612c203131313162622c206661333333332c206262313131312c203333666133332c203131626231312c206661666133332c206262626231312c206661333366612c206262313162622c203333666166612c203131626262620a637573746f6d20636f6c6f72733a204f46462c2074726964783a20313030302c20636f6c6f72733a203030303030302c203434343434342c203838383838382c206363636363630a codec_private_length:348 content_encoding_algorithms:0 default_track:false enabled_track:true forced_track:false language:eng minimum_timestamp:7200000000 num_index_entries:1383 number:6 track_name:English\sfor\sJapanese\scommentary uid:7713837813280926000]
2024-1-1 18:07:11.6|[2735]Info|Original tracks: 6 (audio: 3, subtitles: 2)
2024-1-1 18:07:11.7|[2735]Info|Chapters: 12
2024-1-1 18:07:11.7|[2735]Info|Keeping audio track 3: eng (AAC)
2024-1-1 18:07:11.7|[2735]Info|Keeping subtitles track 4: eng (SubRip/SRT)
2024-1-1 18:07:11.7|[2735]Info|Keeping subtitles track 5: eng (VobSub)
2024-1-1 18:07:11.7|[2735]Info|Removed audio tracks: 1: jpn (AAC),2: jpn (AAC)
2024-1-1 18:07:11.7|[2735]Info|Kept tracks: 4 (audio: 1, subtitles: 2)
2024-1-1 18:07:11.7|[2735]Debug|Executing: nice /usr/bin/mkvmerge --title "Audition (1999)" -q -o "/movies/Audition (1999) [1080p]/Audit.tmp.l7kdMU" -a 3 -s 4,5 "/movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv"
2024-1-1 18:07:27.8|[2735]Debug|Deleting or recycling "/movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv". Calling Radarr API using DELETE and URL 'http://localhost:7878//radarr/api/v3/moviefile/2851'
2024-1-1 18:07:27.8|[2735]Debug|Renaming: "/movies/Audition (1999) [1080p]/Audit.tmp.l7kdMU" to "/movies/Audition (1999) [1080p]/Audition (1999) [Bluray-1080p] - AAC 5.1 x265.mkv"
2024-1-1 18:07:27.8|[2735]Info|New size: 8.578G
2024-1-1 18:07:27.8|[2735]Info|Calling Radarr API to rescan movie
2024-1-1 18:07:27.8|[2735]Debug|Forcing rescan of movie '1276'. Calling Radarr API using POST and URL 'http://localhost:7878//radarr/api/v3/command' with data {"name":"RescanMovie","movieId":1276}
2024-1-1 18:07:28.9|[2735]Debug|Checking job  completion. Calling Radarr API using GET and URL 'http://localhost:7878//radarr/api/v3/command/'
2024-1-1 18:07:29.0|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:30.0|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:31.1|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:32.2|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:33.3|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:34.3|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:35.4|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:36.5|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:37.5|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:38.6|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:39.7|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:40.8|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:41.8|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:42.9|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:44.0|[2735]Debug|Job not done. Waiting 1 second.
2024-1-1 18:07:45.0|[2735]Warn|Script timed out waiting on Radarr job ID . Last status was: 
2024-1-1 18:07:45.0|[2735]Info|Completed in 0m 34s
2024-1-1 18:07:45.0|[2735]Debug|Exit code 18

In particular the line 2024-1-1 18:07:11.5|[2735]Debug|Command line ':org' code specified for audio. Changing ':org:eng:und' to ':eng:und' seems to be the culprit though I'm guess it's also related to the false hasFile?

Am I completely misunderstanding the purpose and usage of the org setting? In my Radarr custom formats I have both English and Original set as wanted (though neither are "required"; and using the "Test Parsing" functionality in radarr with the filename Odishon.1999.Arrow.1080p.BluRay.x265.hevc.10bit.AAC.5.1.commentary-HeVK; it properly maps to the correct movie, shows the original language as Japanese and matches my "EnglishOrig" custom format.

image

Track number 0 removed in some circumstances

If the video file has an audio track id of 0 and any other selected audio track, track 0 is removed. The script will misleadingly log that the track is kept, but if you examine the resulting file, what was track 0 is missing.
This same behavior will happen to a subtitle track id 0.

Example log details:

Radarr event: Download, Video: /media/Movies/The Adjustment Bureau (2011)/The Adjustment Bureau (2011).DTS-HD MA.mkv ...
Original tracks: 26 (audio: 2, subtitles: 23)
Chapters: 20
Keeping audio track 0: eng (DTS-HD Master Audio)
Keeping audio track 2: eng (AC-3)
Keeping subtitles track 3: eng (HDMV PGS)
Keeping subtitles track 21: eng (HDMV PGS)
Removed subtitles tracks: 9: spa (HDMV PGS),10: dut (HDMV PGS),19: por (HDMV PGS),11: chi (HDMV PGS),20: swe (HDMV P ...
Kept tracks: 5 (audio: 2, subtitles: 2)
New size: 4.155G
Calling Radarr API to rescan movie, try #1
Completed in 1m 4s

In reality, the resulting file only had one audio track and two subtitles tracks. In this case the DTS-HD Master Audio track had been removed

Note that if there is only a single kept audio or subtitle track and it happened to have id 0, it would still be preserved.

Typically, track id 0 is the video stream, but this is not necessarily the case, and it certainly doesn't have to be. This is probably why it took me so long to encounter this issue. The problem is due to a comparison operator issue in my awk custom join function. A fix is already being tested.

Original movie extension is kept

Even though the remuxed file is in Matroska format, the originally downloaded file extension is used. This was a bug introduced when issue #18 was resolved.

Radarr and Sonarr treat languages so differently

In my quest to make my script more and more automatic so that it does things on its own that I find myself doing by hand, I decided to tackle languages a while back. I started by using the built-in functions in Radarr and Sonarr v3 that allow for languages in configured profiles.

I soon found that each program treats languages very differently:

  • Radarr ties the download language to the Quality Profile, and you can only choose one language.
  • Sonarr has a separate download Language Profile, and you can select multiple languages.

I also found that in addition to natural language selections, each also has an 'Unknown' selection. That sounded nice.

Radarr also has 'Any' and 'Original' selections that Sonarr doesn't have, which as far as I can tell do the exact same thing. There is nowhere in the GUI or the returned JSON in Radarr where it tracks the first release language of a movie, so 'Original' can't do what you would think it does.

So, I worked out how to call the APIs and parse the JSON, added some more variables to differentiate between them, and how to work with effectively two 'Any' settings in Radarr.

Release 2.0 was born.


This worked out really great. However, after a bit, I found myself manually updating the Languages on movies in Radarr when "Multi-Language" appeared. Unless they were foreign films, this turned out to be an indicator that the movie had been detected with more than one audio language during download, but after remuxing, only retained one language (or a smaller set of languages).
How hard could that be?

☹️ 🤦‍♂️

I have now thoroughly unpacked the problem, only to discover that yet again, Radarr and Sonarr treat languages very differently:

  • Sonarr allows only one language per episode file
  • Radarr allows a selection of multiple languages per movie file
  • They each use different numeric codes for the same language

Exactly the opposite quantity problem of the profile issue above, with the added complexity of different codes.

<rant on>
They have opposite issues??? One allows the selection of multiple languages during download, but only one language configured per file, while the other allows the selection of only one language during download, but multiple languages configured per file!

WTF?!?

How hard can it be to get both Radarr and Sonarr to treat languages the same !@#$% way! Sheesh.

This is just the dumbest thing.
<end rant>

After much tweaking, dealing with JSON differences, etc.,

Please help test Release 2.2 that attempts to deal with this cluster f---

new branch

Hello,

the radarr version 3 is now with on nightly branch only

Do not remove last audio track

If there is only one audio track and it the script is not configured to keep it, it is removed. Result is a silent movie.

Example: The Devils Backbone 2001 Remastered 1080p BluRay x264-SADPANDA
The Spanish audio track is removed if ":eng" is the only language configured for audio.

Write new videofile to tempfile first and rename after striptracks completion

Why?
Because Jellyfin for example finds and scans (ffprobe) the videofile while being written by striptracks. FFprobe outputs wrong data because the file is still incomplete while being probed. This often results in ffprobe outputting a videolength of 0 for example.

How to prevent this?
My proposal would be to simply write the new file to a temp file that does not have a valid videofile extenstion that's would be picked up by mediaservers and rename it only AFTER striptracks completeted its tasks. This way, the videofile is only ever being probed by other software in a complete and readable state.

is there a way to keep both audio/subtitle track of same language?

I'm currently having issue with a series on sonarr that have actual audio (audio track 1) and commentary (audio track 2). I'm wondering if there is a way to keep both.

I'm running this custom wrapper as I wanted it to run on every series I have in sonarr that have american, chinese, japanese, anime and more. so I used keep original audio.

#!/bin/bash

. /usr/local/bin/striptracks.sh --audio :org --subs :eng:und

this is the logs for specific issue that it's keeping only the commentary audio and original audio subtitle.

2023-6-9 14:38:16.5|[1563]Info|Sonarr event: Download, Video: /anime/Monogatari (2009)/Season 01/Monogatari (2009) - S01E01 - 001 - Hitagi Crab Part 1 [HDTV-1080p v2][10bit][x264][AAC 2.0][JA]-MTBB.mkv, Size: 881.124M, AudioKeep: , SubsKeep: :eng:und
2023-6-9 14:38:17.3|[1563]Info|Original tracks: 6 (audio: 2, subtitles: 3)
2023-6-9 14:38:17.3|[1563]Info|Chapters: 5
2023-6-9 14:38:17.3|[1563]Info|Keeping last audio track 2: jpn (AAC)
2023-6-9 14:38:17.3|[1563]Info|Keeping subtitles track 3: eng (SubStationAlpha)
2023-6-9 14:38:17.3|[1563]Info|Keeping subtitles track 5: eng (SubStationAlpha)
2023-6-9 14:38:17.3|[1563]Info|Removed audio tracks: 1: jpn (AAC)
2023-6-9 14:38:17.3|[1563]Info|Removed subtitles tracks: 4: enm (SubStationAlpha)
2023-6-9 14:38:17.3|[1563]Info|Kept tracks: 4 (audio: 1, subtitles: 2)
2023-6-9 14:38:41.0|[1563]Info|New size: 832.225M
2023-6-9 14:38:41.1|[1563]Info|Calling Sonarr API to rescan series, try #1
2023-6-9 14:38:43.9|[1563]Info|Completed in 0m 28s

Note: for now I imported this specific season by disabling striptracks as I wanted all that it have mostly. but if I plan to import more BD disks that have commentary in them,

I checked also on using tags but might be an issue as I mostly pull from lists like trakt and anilist. and language might vary. and checking them 1 by 1 would be an issue as family member also uses lists, and only have access to adding shows to lists.

Script seems to be deleting original file without actually outputting new file

This is happening in both Radarr (v5.2.6.8376) and Sonarr (v4.0.0.746)

Randomly, new releases have been getting imported, then immediately deleted. I finally figured out it was being caused by this script (I forgot I had set this up)

I'm not too sure what is happening. Looking through the logs (I enabled the debug logs), it seems like it removes the unwanted tracks and subs, deletes the original file, then renames the temporary file. Everything looks fine. The issue is that when this is all done, there are no files left over. Both the original and stripped files are missing.

I was originally on the linuxserver release for this mod, but I tried switching to the development version (thecaptain989/radarr-striptracks:latest) and it is still happening.

Here are the debug logs for one of the movies this happened to :
https://pastebin.com/kGp9ZJMV
The movie is "Sound of Freedom", but it is happening randomly to like 20% of all new releases. I can't see a pattern between any of them

Edit: Original link disappeared for some reason https://img.burber.org/code/yc9YjQ.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.