mirror of
https://github.com/TrezOne/docker-mods-uptime-kuma-timeout-fix.git
synced 2026-07-18 16:58:27 -04:00
Merge pull request #199 from TheCaptain989/radarr-striptracks
radarr: striptracks release 1.3
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 947 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
@@ -1,6 +1,9 @@
|
|||||||
|
# Docker ignore file
|
||||||
.git
|
.git
|
||||||
.gitignore
|
.gitignore
|
||||||
.github
|
.github
|
||||||
.gitattributes
|
.gitattributes
|
||||||
|
.assets
|
||||||
READMETEMPLATE.md
|
READMETEMPLATE.md
|
||||||
README.md
|
README.md
|
||||||
|
SECURITY.md
|
||||||
|
|||||||
@@ -16,9 +16,14 @@ jobs:
|
|||||||
- name: Build image
|
- name: Build image
|
||||||
run: |
|
run: |
|
||||||
# Build variables
|
# Build variables
|
||||||
VERSION=$(git describe --tags --always)
|
VERSION=${GITHUB_SHA:0:7}
|
||||||
|
cat <<EOF
|
||||||
|
Building version $VERSION
|
||||||
|
EOF
|
||||||
# Build image
|
# Build image
|
||||||
docker build --no-cache --build-arg VERSION=${VERSION} -t ${{ github.sha }} .
|
docker build --build-arg VERSION=${VERSION} \
|
||||||
|
--no-cache \
|
||||||
|
--tag ${{ github.sha }} .
|
||||||
|
|
||||||
- name: Tag image
|
- name: Tag image
|
||||||
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
|
if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
|
# About
|
||||||
A [Docker Mod](https://github.com/linuxserver/docker-mods) for the LinuxServer.io Radarr/Sonarr Docker container that adds a script to automatically strip out unwanted audio and subtitle streams, keeping only the desired languages.
|
A [Docker Mod](https://github.com/linuxserver/docker-mods) for the LinuxServer.io Radarr/Sonarr Docker container that adds a script to automatically strip out unwanted audio and subtitle streams, keeping only the desired languages.
|
||||||
Chapters, if they exist, are preserved. The Title attribute in the MKV is set to the movie title plus year (ex: `The Sting (1973)`) or the series title plus episode information (ex: `Happy! 01x01 - What Smiles Are For`).
|
|
||||||
|
|
||||||
**One unified script works in both Radarr and Sonarr. Use this mod in either container!**
|
**One unified script works in both Radarr and Sonarr. Use this mod in either container!**
|
||||||
>**NOTE:** This mod support Linux OSes only.
|
>**NOTE:** This mod supports Linux OSes only.
|
||||||
|
|
||||||
Container info:
|
Container info:
|
||||||

|

|
||||||
|

|
||||||
|
Production Container info: 
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
>**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds.
|
>**NOTE:** See the [Sonarr/Radarr v2 Builds](./README.md#sonarrradarr-v2-builds) section below for important differences to these instructions for v2 builds.
|
||||||
|
|
||||||
1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub:
|
1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub:
|
||||||
`docker pull linuxserver/radarr:latest` OR
|
`docker pull linuxserver/radarr:latest` OR
|
||||||
@@ -17,47 +19,72 @@ Container info:
|
|||||||
2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here:
|
2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here:
|
||||||
**[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")**
|
**[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")**
|
||||||
**[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")**
|
**[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")**
|
||||||
1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows:
|
1. Add the **DOCKER_MODS** environment variable to the `docker run` command, as follows:
|
||||||
`-e DOCKER_MODS=linuxserver/mods:radarr-striptracks`
|
|
||||||
|
- Stable release: `-e DOCKER_MODS=linuxserver/mods:radarr-striptracks`
|
||||||
|
|
||||||
|
*Example Docker CLI Configuration*
|
||||||
|
```shell
|
||||||
|
docker run -d \
|
||||||
|
--name=radarr \
|
||||||
|
-e PUID=1000 \
|
||||||
|
-e PGID=1000 \
|
||||||
|
-e TZ=America/Chicago \
|
||||||
|
-e DOCKER_MODS=linuxserver/mods:radarr-striptracks \
|
||||||
|
-p 7878:7878 \
|
||||||
|
-v /path/to/data:/config \
|
||||||
|
-v /path/to/movies:/movies \
|
||||||
|
-v /path/to/downloadclient-downloads:/downloads \
|
||||||
|
--restart unless-stopped \
|
||||||
|
ghcr.io/linuxserver/radarr
|
||||||
|
```
|
||||||
|
|
||||||
*Example Synology Configuration*
|
*Example Synology Configuration*
|
||||||

|

|
||||||
|
|
||||||
2. Start the container.
|
2. Start the container.
|
||||||
|
|
||||||
3. After all of the above configuration is complete, to use mkvmerge:
|
3. After the above configuration is complete, to use mkvmerge, configure a custom script from Radarr's or Sonarr's *Settings* > *Connect* screen and type the following in the **Path** field:
|
||||||
1. Configure a custom script from the Radarr/Sonnar Settings->Connect screen and type the following in the **Path** field:
|
`/usr/local/bin/striptracks-eng.sh`
|
||||||
`/usr/local/bin/striptracks.sh`
|
|
||||||
|
|
||||||
2. Add the codes for the audio and subtitle languages you want to keep as **Arguments** (details in the [Syntax](./README.md#syntax) section below):
|
*Example*
|
||||||
<ins>Suggested Example</ins>
|

|
||||||
**`:eng:und :eng`**
|
|
||||||
|
<ins>This is a wrapper script that calls striptracks.sh with the following arguments, which keep English audio and subtitles only!</ins>
|
||||||
|
`:eng:und :eng`
|
||||||
|
|
||||||
|
*For any other combinations of audio and subtitles you **must** either use one of the [included wrapper scripts](./README.md#included-wrapper-scripts) or create a custom script with the codes for the languages you want to keep. See the [Syntax](./README.md#syntax) section below.*
|
||||||
|
*Do not put `striptracks.sh` in the **Path** field!*
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
>**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds.
|
The source video can be any mkvtoolnix supported video format. The output is an MKV file with the same name.
|
||||||
|
Chapters, if they exist, are preserved. The Title attribute in the MKV is set to the movie title plus year
|
||||||
|
(ex: `The Sting (1973)`) or the series title plus episode information (ex: `Happy! 01x01 - What Smiles Are For`).
|
||||||
|
|
||||||
The source video can be any mkvtoolnix supported video format. The output is an MKV file with the same name.
|
If you've configured the Radarr/Sonarr **Recycle Bin** path correctly, the original video will be moved there.
|
||||||
|
![danger] **NOTE:** If you have *not* configured the Recycle Bin, the original video file will be deleted/overwritten and permanently lost.
|
||||||
If you've configured the Radarr/Sonarr Recycle Bin path correctly, the original video will be moved there.
|
|
||||||
![warning24] **NOTE:** If you have *not* configured the Recycle Bin, the original video file will be deleted/overwritten and permanently lost.
|
|
||||||
|
|
||||||
### Syntax
|
### Syntax
|
||||||
The script accepts two arguments and one option in the **Arguments** field:
|
>**NOTE:** The **Arguments** field for Custom Scripts was removed in Radarr and Sonarr v3 due to security concerns. To support options with these versions and later,
|
||||||
|
a wrapper script must be manually created that will call *striptracks.sh* with the required arguments.
|
||||||
|
|
||||||
|
The script accepts two command line arguments and one option:
|
||||||
|
|
||||||
`[-d] <audio_languages> <subtitle_languages>`
|
`[-d] <audio_languages> <subtitle_languages>`
|
||||||
|
|
||||||
The arguments are language codes in [ISO639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes "List of ISO 639-2 codes") format.
|
The `<audio_languages>` and `<subtitle_languages>` arguments are colon (:) prepended language codes in [ISO639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes "List of ISO 639-2 codes") format.
|
||||||
These are three letter abbreviations prefixed with a colon ':', such as:
|
For example:
|
||||||
|
|
||||||
* :eng
|
* :eng
|
||||||
* :fre
|
* :fre
|
||||||
* :spa
|
* :spa
|
||||||
|
|
||||||
...etc.
|
...etc.
|
||||||
|
|
||||||
Multiple codes may be concatenated, such as `:eng:spa` for both English and Spanish.
|
Multiple codes may be concatenated, such as `:eng:spa` for both English and Spanish.
|
||||||
|
**These codes are mandatory.** There are no defaults.
|
||||||
|
|
||||||
It is suggested to use `:eng:und :eng` if you are unsure of what to choose. This will keep English and Undetermined audio and English subtitles, if they exist.
|
The wrapper script noted above uses `:eng:und :eng`, which will keep English and Undetermined audio and English subtitles.
|
||||||
>**NOTE:** The script is smart enough to not remove the last audio track. This way you don't have to specify every possible language if you are importing a
|
>**NOTE:** The script is smart enough to not remove the last audio track. This way you don't have to specify every possible language if you are importing a
|
||||||
foreign film, for example.
|
foreign film, for example.
|
||||||
|
|
||||||
@@ -65,75 +92,21 @@ The `-d` option enables debug logging.
|
|||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
```
|
```
|
||||||
:eng:und :eng # keep English and Undetermined audio and English subtitles
|
:eng:und :eng # keep English and Undetermined audio and English subtitles
|
||||||
-d :eng "" # Enable debugging, keeping English audio and no subtitles
|
-d :eng "" # Enable debugging, keeping English audio and no subtitles
|
||||||
:eng:kor:jpn :eng:spa # Keep English, Korean, and Japanese audio, and English and
|
:eng:kor:jpn :eng:spa # Keep English, Korean, and Japanese audio, and English and
|
||||||
Spanish subtitles
|
# Spanish subtitles
|
||||||
```
|
```
|
||||||
|
|
||||||
## Triggers
|
|
||||||
The only events/notification triggers that have been tested are **On Download** and **On Upgrade**
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Logs
|
|
||||||
A log file is created for the script activity called:
|
|
||||||
|
|
||||||
`/config/logs/striptracks.txt`
|
|
||||||
|
|
||||||
This log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Logs->Files
|
|
||||||
|
|
||||||
Script errors will show up in both the script log and the native Radarr/Sonarr log.
|
|
||||||
|
|
||||||
Log rotation is performed with 5 log files of 512KB each being kept.
|
|
||||||
>![warning24] **NOTE:** If debug logging is enabled, the log file can grow very large very quickly. *Do not leave debug logging enabled permanently.*
|
|
||||||
|
|
||||||
___
|
|
||||||
|
|
||||||
## Sonarr/Radarr v3 Builds
|
|
||||||
>![warning] **Warning: Unstable Releases** ![warning]
|
|
||||||
>The Sonarr/Radarr v3 Builds are the unstable releases (Aphrodite and Phantom) of Radarr and Sonarr. Though the mod works with all versions of the container, I cannot guarantee these releases are stable.
|
|
||||||
|
|
||||||
<ins>Important differences for Sonarr/Radarr v3 Builds</ins>
|
|
||||||
### Mod installation
|
|
||||||
Substitute the following steps for those noted in the [Installation](./README.md#installation) section above.
|
|
||||||
1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub:
|
|
||||||
`docker pull linuxserver/radarr:preview` OR
|
|
||||||
`docker pull linuxserver/sonarr:preview`
|
|
||||||
|
|
||||||
2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here:
|
|
||||||
**[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")**
|
|
||||||
**[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")**
|
|
||||||
1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows:
|
|
||||||
`-e DOCKER_MODS=linuxserver/mods:radarr-striptracks`
|
|
||||||
|
|
||||||
*Example Synology Configuration*
|
|
||||||

|
|
||||||
|
|
||||||
2. Start the container.
|
|
||||||
|
|
||||||
3. After the above configuration is complete, to use mkvmerge, configure a custom script from the Settings->Connect screen and type the following in the **Path** field:
|
|
||||||
|
|
||||||
`/usr/local/bin/striptracks-eng.sh`
|
|
||||||
|
|
||||||
<ins>This is a wrapper script that calls striptracks.sh with the following arguments, which keep English audio and subtitles only!</ins>
|
|
||||||
`:eng:und :eng`
|
|
||||||
|
|
||||||
*For any other combinations of audio and subtitles you **must** either use one of the [included wrapper scripts](./README.md#included-wrapper-scripts) or
|
|
||||||
create a custom script with the codes for the languages you want to keep. See the [Syntax](./README.md#syntax) section above.
|
|
||||||
Do not put `striptracks.sh` in the **Path** field!*
|
|
||||||
|
|
||||||
### Included Wrapper Scripts
|
### Included Wrapper Scripts
|
||||||
>**NOTE:** The **Arguments** field for Custom Scripts was removed in Radarr and Sonarr v3 due to security concerns. To support options with this version and later,
|
|
||||||
a wrapper script can be manually created that will call *striptracks.sh* with the required arguments.
|
|
||||||
|
|
||||||
For your convenience, several wrapper scripts are included in the `/usr/local/bin/` directory.
|
For your convenience, several wrapper scripts are included in the `/usr/local/bin/` directory.
|
||||||
You may use any of these scripts in place of the `striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above.
|
You may use any of these scripts in place of the `striptracks-eng.sh` mentioned in the [Installation](./README.md#installation) section above.
|
||||||
|
|
||||||
```
|
```
|
||||||
striptracks-dut.sh # Keep Dutch audio and subtitles
|
striptracks-dut.sh # Keep Dutch audio and subtitles
|
||||||
striptracks-eng.sh # Keep English and Undetermined audio and English subtitles
|
striptracks-eng.sh # Keep English and Undetermined audio and English subtitles
|
||||||
striptracks-eng-debug.sh # Keep English and Undetermined audio and English subtitles, and enable debug logging
|
striptracks-eng-debug.sh # Keep English and Undetermined audio and English subtitles, and enable debug logging
|
||||||
|
striptracks-eng-fre.sh # Keep English, French, and Undetermined audio and English subtitles
|
||||||
striptracks-eng-jpn.sh # Keep English, Japanese, and Undetermined audio and English subtitles
|
striptracks-eng-jpn.sh # Keep English, Japanese, and Undetermined audio and English subtitles
|
||||||
striptracks-fre.sh # Keep French audio and subtitles
|
striptracks-fre.sh # Keep French audio and subtitles
|
||||||
striptracks-fre-debug.sh # Keep French audio and subtitles, and enable debug logging
|
striptracks-fre-debug.sh # Keep French audio and subtitles, and enable debug logging
|
||||||
@@ -142,24 +115,63 @@ striptracks-spa.sh # Keep Spanish audio and subtitles
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Example Wrapper Script
|
### Example Wrapper Script
|
||||||
To configure the last entry from the [Examples](./README.md#examples) section above, create and save a file called `wrapper.sh` to `/usr/local/bin` containing the following text:
|
To configure the last entry from the [Examples](./README.md#examples) section above, create and save a file called `striptracks-custom.sh` to `/config` containing the following text:
|
||||||
```
|
```shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /usr/local/bin/striptracks.sh :eng:kor:jpn :eng:spa
|
. /usr/local/bin/striptracks.sh :eng:kor:jpn :eng:spa
|
||||||
```
|
```
|
||||||
Then put `/usr/local/bin/wrapper.sh` in the **Path** field in place of `/usr/local/bin/striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above.
|
Make it executable:
|
||||||
|
```shell
|
||||||
|
chmod +x /config/striptracks-custom.sh
|
||||||
|
```
|
||||||
|
|
||||||
### Preview Triggers
|
Then put `/config/striptracks-custom.sh` in the **Path** field in place of `/usr/local/bin/striptracks-eng.sh` mentioned in the [Installation](./README.md#installation) section above.
|
||||||
|
|
||||||
|
>**Note:** If you followed the Linuxserver.io recommendations when configuring your container, the `/config` directory will be mapped to an external storage location. It is therefore recommended to place custom scripts in the `/config` directory so they will survive container updates, but they may be placed anywhere that is accessible by Radarr or Sonarr.
|
||||||
|
|
||||||
|
### Triggers
|
||||||
The only events/notification triggers that have been tested are **On Import** and **On Upgrade**
|
The only events/notification triggers that have been tested are **On Import** and **On Upgrade**
|
||||||
|
|
||||||

|
### Logs
|
||||||
|
A log file is created for the script activity called:
|
||||||
|
|
||||||
### Preview Logs
|
`/config/logs/striptracks.txt`
|
||||||
The log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Log Files
|
|
||||||
|
This log can be inspected or downloaded from Radarr/Sonarr under *System* > *Logs* > *Files*
|
||||||
|
|
||||||
|
Script errors will show up in both the script log and the native Radarr/Sonarr log.
|
||||||
|
|
||||||
|
Log rotation is performed with 5 log files of 512KB each being kept.
|
||||||
|
>![danger] **NOTE:** If debug logging is enabled, the log file can grow very large very quickly. *Do not leave debug logging enabled permanently.*
|
||||||
|
|
||||||
___
|
___
|
||||||
|
|
||||||
|
## Sonarr/Radarr v2 Builds
|
||||||
|
>![warning] **Warning: Legacy Releases**
|
||||||
|
>The Sonarr/Radarr v2 Builds of Radarr and Sonarr are no longer being developed and are considered legacy. However, this mod works with all versions of the container.
|
||||||
|
|
||||||
|
<ins>Important differences for Sonarr/Radarr v2 Builds</ins>
|
||||||
|
### Legacy Installation
|
||||||
|
Substitute the following step for step #3 noted in the [Installation](./README.md#installation) section above.
|
||||||
|
3. After all of the above configuration is complete, to use mkvmerge:
|
||||||
|
1. Configure a custom script from the Radarr/Sonnar *Settings* > *Connect* screen and type the following in the **Path** field:
|
||||||
|
`/usr/local/bin/striptracks.sh`
|
||||||
|
|
||||||
|
2. Add the codes for the audio and subtitle languages you want to keep as **Arguments** (details in the [Syntax](./README.md#syntax) section above):
|
||||||
|
<ins>Suggested Example</ins>
|
||||||
|
`:eng:und :eng`
|
||||||
|
|
||||||
|
*Example*
|
||||||
|

|
||||||
|
|
||||||
|
### Legacy Triggers
|
||||||
|
The only events/notification triggers that have been tested are **On Download** and **On Upgrade**
|
||||||
|
|
||||||
|
### Legacy Logs
|
||||||
|
The log can be inspected or downloaded from Radarr/Sonarr under *System* > *Log Files*
|
||||||
|
|
||||||
|
___
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
This would not be possible without the following:
|
This would not be possible without the following:
|
||||||
@@ -170,7 +182,8 @@ This would not be possible without the following:
|
|||||||
[LinuxServer.io Sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container") container
|
[LinuxServer.io Sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container") container
|
||||||
[LinuxServer.io Docker Mods](https://hub.docker.com/r/linuxserver/mods "Docker Mods containers") project
|
[LinuxServer.io Docker Mods](https://hub.docker.com/r/linuxserver/mods "Docker Mods containers") project
|
||||||
[MKVToolNix](https://mkvtoolnix.download/ "MKVToolNix homepage") by Moritz Bunkus
|
[MKVToolNix](https://mkvtoolnix.download/ "MKVToolNix homepage") by Moritz Bunkus
|
||||||
The AWK script parsing mkvmerge output is adapted from Endoro's post on [VideoHelp](https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889).
|
The AWK script parsing mkvmerge output is adapted from Endoro's post on [VideoHelp](https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889).
|
||||||
|
Icons made by [Freepik](https://www.freepik.com) from [Flaticon](https://www.flaticon.com/)
|
||||||
|
|
||||||
[warning]: http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Warning.png "Warning"
|
[warning]: .assets/warning.png "Warning"
|
||||||
[warning24]: http://files.softicons.com/download/toolbar-icons/24x24-free-pixel-icons-by-aha-soft/png/24x24/Warning.png "Warning"
|
[danger]: .assets/danger.png "Danger"
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Only the latest major and minor version are supported.
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 1.3.x | :heavy_check_mark: |
|
||||||
|
| < 1.3 | :x: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
Vulnerability reports or security concerns may be submitted as a new issue in GitHub, or emailed to:
|
||||||
|
|
||||||
|
>thecaptain989@protonmail.com
|
||||||
|
|
||||||
|
Please allow 48-hours for an initial response. An issue will be entered if accepted.
|
||||||
@@ -3,7 +3,9 @@
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
----------------
|
----------------
|
||||||
>>> Striptracks Mod by TheCaptain989 <<<
|
>>> Striptracks Mod by TheCaptain989 <<<
|
||||||
Repo: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks
|
Repos:
|
||||||
|
Dev/test: https://github.com/TheCaptain989/radarr-striptracks
|
||||||
|
Prod: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks
|
||||||
|
|
||||||
Version: $(cat /etc/version.tc989)
|
Version: $(cat /etc/version.tc989)
|
||||||
----------------
|
----------------
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
# Video remuxing script designed for use with Radarr and Sonarr
|
# Video remuxing script designed for use with Radarr and Sonarr
|
||||||
# Automatically strips out unwanted audio and subtitle streams, keeping only the desired languages.
|
# Automatically strips out unwanted audio and subtitle streams, keeping only the desired languages.
|
||||||
# https://github.com/linuxserver/docker-mods/tree/radarr-striptracks
|
# Prod: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks
|
||||||
|
# Dev/test: https://github.com/TheCaptain989/radarr-striptracks
|
||||||
|
|
||||||
# Adapted and corrected from Endoro's post 1/5/2014:
|
# Adapted and corrected from Endoro's post 1/5/2014:
|
||||||
# https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889
|
# https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889
|
||||||
@@ -26,6 +27,7 @@
|
|||||||
# 4 - mkvmerge not found
|
# 4 - mkvmerge not found
|
||||||
# 5 - specified video file not found
|
# 5 - specified video file not found
|
||||||
# 6 - unable to rename video to temp video
|
# 6 - unable to rename video to temp video
|
||||||
|
# 7 - unknown environment
|
||||||
# 10 - remuxing completed, but no output file found
|
# 10 - remuxing completed, but no output file found
|
||||||
# 20 - general error
|
# 20 - general error
|
||||||
|
|
||||||
@@ -44,14 +46,15 @@ if [[ "${striptracks_type,,}" = "radarr" ]]; then
|
|||||||
export striptracks_json_quality_root=".movieFile"
|
export striptracks_json_quality_root=".movieFile"
|
||||||
export striptracks_video_type="movie"
|
export striptracks_video_type="movie"
|
||||||
export striptracks_title="$radarr_movie_title ($radarr_movie_year)"
|
export striptracks_title="$radarr_movie_title ($radarr_movie_year)"
|
||||||
|
elif [[ "${striptracks_type,,}" = "sonarr" ]]; then
|
||||||
|
export striptracks_video="$sonarr_episodefile_path"
|
||||||
|
export striptracks_api_endpoint="episodefile"
|
||||||
|
export striptracks_json_quality_root=""
|
||||||
|
export striptracks_video_type="series"
|
||||||
|
export striptracks_title="$sonarr_series_title $(numfmt --format "%02f" ${sonarr_episodefile_seasonnumber:-0})x$(numfmt --format "%02f" ${sonarr_episodefile_episodenumbers:-0}) - $sonarr_episodefile_episodetitles"
|
||||||
else
|
else
|
||||||
if [[ "${striptracks_type,,}" = "sonarr" ]]; then
|
echo "Unknown environment: ${striptracks_type}"
|
||||||
export striptracks_video="$sonarr_episodefile_path"
|
exit 7
|
||||||
export striptracks_api_endpoint="episodefile"
|
|
||||||
export striptracks_json_quality_root=""
|
|
||||||
export striptracks_video_type="series"
|
|
||||||
export striptracks_title="$sonarr_series_title $(numfmt --format "%02f" $sonarr_episodefile_seasonnumber)x$(numfmt --format "%02f" $sonarr_episodefile_episodenumbers) - $sonarr_episodefile_episodetitles"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
export striptracks_api="Rescan${striptracks_video_type^}"
|
export striptracks_api="Rescan${striptracks_video_type^}"
|
||||||
export striptracks_json_key="${striptracks_video_type}Id"
|
export striptracks_json_key="${striptracks_video_type}Id"
|
||||||
@@ -80,22 +83,20 @@ Source: https://github.com/TheCaptain989/radarr-striptracks
|
|||||||
Usage:
|
Usage:
|
||||||
$0 [-d] <audio_languages> <subtitle_languages>
|
$0 [-d] <audio_languages> <subtitle_languages>
|
||||||
|
|
||||||
Arguments:
|
Options and Arguments:
|
||||||
audio_languages # ISO639-2 code(s) prefixed with a colon \`:\`
|
-d enable debug logging
|
||||||
Multiple codes may be concatenated.
|
<audio_languages> ISO639-2 code(s) prefixed with a colon \`:\`
|
||||||
subtitle_languages # ISO639-2 code(s) prefixed with a colon \`:\`
|
Multiple codes may be concatenated.
|
||||||
Multiple codes may be concatenated.
|
<subtitle_languages> ISO639-2 code(s) prefixed with a colon \`:\`
|
||||||
|
Multiple codes may be concatenated.
|
||||||
Options:
|
|
||||||
-d # enable debug logging
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
$striptracks_script :eng:und :eng # keep English and Undetermined audio and
|
$striptracks_script :eng:und :eng # keep English and Undetermined audio and
|
||||||
English subtitles
|
# English subtitles
|
||||||
$striptracks_script :eng \"\" # keep English audio and no subtitles
|
$striptracks_script :eng \"\" # keep English audio and no subtitles
|
||||||
$striptracks_script -d :eng:kor:jpn :eng:spa # Enable debugging, keeping English, Korean,
|
$striptracks_script -d :eng:kor:jpn :eng:spa # Enable debugging, keeping English, Korean,
|
||||||
and Japanese audio, and English and
|
# and Japanese audio, and English and
|
||||||
Spanish subtitles
|
# Spanish subtitles
|
||||||
"
|
"
|
||||||
>&2 echo "$usage"
|
>&2 echo "$usage"
|
||||||
}
|
}
|
||||||
@@ -188,6 +189,7 @@ while getopts ":d" opt; do
|
|||||||
done
|
done
|
||||||
shift $((OPTIND -1))
|
shift $((OPTIND -1))
|
||||||
|
|
||||||
|
# Check for required command line options
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
MSG="Error|No audio languages specified!"
|
MSG="Error|No audio languages specified!"
|
||||||
echo "$MSG" | log
|
echo "$MSG" | log
|
||||||
@@ -204,6 +206,7 @@ if [ -z "$2" ]; then
|
|||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check for required binaries
|
||||||
if [ ! -f "/usr/bin/mkvmerge" ]; then
|
if [ ! -f "/usr/bin/mkvmerge" ]; then
|
||||||
MSG="Error|/usr/bin/mkvmerge is required by this script"
|
MSG="Error|/usr/bin/mkvmerge is required by this script"
|
||||||
echo "$MSG" | log
|
echo "$MSG" | log
|
||||||
@@ -211,12 +214,14 @@ if [ ! -f "/usr/bin/mkvmerge" ]; then
|
|||||||
exit 4
|
exit 4
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Handle Test event
|
||||||
if [[ "${!striptracks_eventtype}" = "Test" ]]; then
|
if [[ "${!striptracks_eventtype}" = "Test" ]]; then
|
||||||
echo "Info|${striptracks_type^} event: ${!striptracks_eventtype}" | log
|
echo "Info|${striptracks_type^} event: ${!striptracks_eventtype}" | log
|
||||||
echo "Info|Script was test executed successfully." | log
|
echo "Info|Script was test executed successfully." | log
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if called from within Radarr/Sonarr
|
||||||
if [ -z "$striptracks_video" ]; then
|
if [ -z "$striptracks_video" ]; then
|
||||||
MSG="Error|No video file specified! Not called from Radarr/Sonarr?"
|
MSG="Error|No video file specified! Not called from Radarr/Sonarr?"
|
||||||
echo "$MSG" | log
|
echo "$MSG" | log
|
||||||
@@ -225,6 +230,7 @@ if [ -z "$striptracks_video" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if source video exists
|
||||||
if [ ! -f "$striptracks_video" ]; then
|
if [ ! -f "$striptracks_video" ]; then
|
||||||
MSG="Error|Input file not found: \"$striptracks_video\""
|
MSG="Error|Input file not found: \"$striptracks_video\""
|
||||||
echo "$MSG" | log
|
echo "$MSG" | log
|
||||||
@@ -395,7 +401,7 @@ FILESIZE=$(numfmt --to iec --format "%.3f" $(stat -c %s "$striptracks_newvideo")
|
|||||||
MSG="Info|New size: $FILESIZE"
|
MSG="Info|New size: $FILESIZE"
|
||||||
echo "$MSG" | log
|
echo "$MSG" | log
|
||||||
|
|
||||||
# Call *arr API to RescanMovie/RescanSeries
|
# Call Radarr/Sonarr API to RescanMovie/RescanSeries
|
||||||
if [ -f "$striptracks_arr_config" ]; then
|
if [ -f "$striptracks_arr_config" ]; then
|
||||||
# Read *arr config.xml
|
# Read *arr config.xml
|
||||||
while read_xml; do
|
while read_xml; do
|
||||||
|
|||||||
Reference in New Issue
Block a user