diff --git a/help/release-notes/index.html b/help/release-notes/index.html index e3c4faf..25e52ac 100644 --- a/help/release-notes/index.html +++ b/help/release-notes/index.html @@ -737,6 +737,15 @@ + + +
Other Changes: ⚡
+yt-dlp
stopped working a few days ago, updating to the latest version!What's New: ✨
Trailer Silence Removal
that will detect and remove silence at end of video. Related to #75Trailarr is a Docker application to download and manage trailers for your Radarr, and Sonarr libraries.
Github: https://github.com/nandyalu/trailarr/
Docker Hub: https://hub.docker.com/r/nandyalu/trailarr/
Documentation: https://nandyalu.github.io/trailarr
Reddit: https://www.reddit.com/r/trailarr
Discord: https://discord.gg/BAJsv76N
"},{"location":"#features","title":"Features","text":"See the Installation guide for detailed instructions on how to install Trailarr.
"},{"location":"#setup","title":"Setup","text":"See the Setup guide for detailed instructions on how to setup Trailarr.
"},{"location":"#dependencies","title":"Dependencies","text":"Trailarr is built using the following libraries and tools:
If you have any questions or need help, please read the FAQ first. If you still need help, please create an issue on the GitHub repository or post a question on Reddit or join our Discord (recommended).
"},{"location":"#issues","title":"Issues","text":"Issues are very valuable to this project.
Thank you for creating them.
"},{"location":"#contributing","title":"Contributing","text":"Contributions are welcome! Please see the Contributing guide for more information.
Looking for a frontend developer (Angular) to help with the UI, if you are interested, please reach out in the Discussions or Reddit.
"},{"location":"#license","title":"License","text":"This project is licensed under the terms of the GPL v3 license. See GPL-3.0 license for more details.
"},{"location":"#disclaimer","title":"Disclaimer","text":"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"CONTRIBUTING/","title":"Contributing to Trailarr","text":"First off, thank you for considering contributing to Trailarr. It's people like you that make Trailarr such a great tool.
"},{"location":"CONTRIBUTING/#getting-started","title":"Getting Started","text":"Open .devcontainer > devcontainer.json
and change the mounts
to your desired folders.
\"mounts\": [\n \"source=/var/appdata/trailarr-dev,target=/data,type=bind,consistency=cached\",\n \"source=/media/all/Media,target=/media,type=bind,consistency=cached\"\n ],\n
Note: Below steps are optional, if you don't want to test any changes that would require connecting to Radarr
and/or Sonarr
, you can simply remove the mounts
section from the devcontainer.json
file. 1. source
is the path on your host machine. 2. target
is the path inside the devcontainer. 3. Change the mount
for /data
to a folder where you want to store the data. Do not use the same folder as your production data. 4. Change the mount
for /media
to the your media folder mapping as set in Radarr
and/or Sonarr
.
VS Code will automatically detect the devcontainer configuration. Click on Reopen in Container
. This will start the build of the Docker container and place you inside it.
NOTE: Be sure to merge the latest from \"upstream\" before making a pull request!
"},{"location":"CONTRIBUTING/#code-of-conduct","title":"Code of Conduct","text":"This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code.
"},{"location":"CONTRIBUTING/#issue-process","title":"Issue Process","text":"Issues are very valuable to this project.
Thank you for creating them.
"},{"location":"CONTRIBUTING/#pull-request-process","title":"Pull Request Process","text":"To ensure consistency throughout the source code, keep these rules in mind as you are working:
The commit message:
By contributing, you agree that your contributions will be licensed under its GPL-3.0 license.
"},{"location":"install/","title":"Install","text":""},{"location":"install/#requirements","title":"Requirements","text":"To run this application, you need the following installed on your system:
See Environment Variables for the list of optional environment variables set for the application.
"},{"location":"install/#volume-mapping","title":"Volume Mapping","text":"See Volume Mapping for the volume mapping details.
"},{"location":"install/#installation","title":"Installation","text":""},{"location":"install/#docker-compose","title":"Docker Compose","text":"See Docker Compose for the Docker Compose installation instructions.
"},{"location":"install/#docker-cli","title":"Docker CLI","text":"See Docker CLI for the Docker CLI installation instructions.
"},{"location":"install/#help","title":"Help","text":"Use the Docker Config Tool to generate the Docker Compose file/CLI command for setting up Docker Volumes and Path Mappings for Trailarr.
"},{"location":"help/changelog/","title":"Changelog","text":"markdown
::github-release-changelog \\ base_indent: 2 token: !ENV GITHUB_TOKEN match: '[0-9+].[0-9+].[0-9]+' autoprocess: true"},{"location":"help/common/","title":"Common","text":""},{"location":"help/common/#youtube-cookies","title":"YouTube Cookies","text":"
If you are having issues downloading trailers due to age restrictions, bot detection, etc., you can save your YouTube cookies and set the Yt-dlp Cookies Path to cookies.txt file containing YouTube cookies. This will allow the app to use the cookies to bypass restrictions.
YouTube rotates cookies frequently on open YouTube browser tabs as a security measure. To export cookies that will remain working with yt-dlp, you will need to export cookies in such a way that they are never rotated.
Note
This is a hack to bypass YouTube restrictions and it might not always work. There is nothing Trailarr can do in those situations.
"},{"location":"help/common/#export-youtube-cookiestxt-file","title":"Export YouTube Cookies.txt file","text":"The suggested way to get the cookies file is:
cookies.txt
by setting Export Format
to Netscape
./var/appdata/trailarr
to /config
in the container, save the cookies file in /var/appdata/trailarr
folder.Settings > Trailer
. Under Advanced
settings, set Yt-dlp Cookies Path
to /config/cookies.txt
(if you saved the file in /var/appdata/trailarr
folder).See below for more info regarding youtube downloaders and cookies:
Warning
Make sure to save the cookies file in a secure location and map the volume to the container. Set the path to the cookies file in Yt-dlp Cookies Path
setting.
Yes, this works with Plex, Emby, and Jellyfin. Trailarr downloads trailers for Movies and Series, and saves them in their respective media folder. Plex, Emby, and Jellyfin can pick up these trailers and display them along with the Movie or Series.
"},{"location":"help/faq/#how-can-i-watch-the-trailers","title":"How can I watch the trailers?","text":"You can watch the trailers in the Movie or Series details in Plex, Emby, or Jellyfin. Trailers downloaded by Trailarr are saved in the same folder as the Movie or Series, for Plex, Emby, and Jellyfin to recognize and display them along with the Movie or Series.
"},{"location":"help/faq/#can-i-use-tailarr-without-radarr-or-sonarr","title":"Can I use Tailarr without Radarr or Sonarr?","text":"No, Trailarr relies on data from Radarr and Sonarr to monitor Movies and Series. You need to have Radarr and/or Sonarr setup and connected to Trailarr to download trailers.
"},{"location":"help/faq/#can-i-use-trailarr-with-multiple-radarr-or-sonarr-instances","title":"Can I use Trailarr with multiple Radarr or Sonarr instances?","text":"Yes, you can connect multiple Radarr and Sonarr instances to Trailarr. Trailarr will monitor Movies and Series from all connected Radarr and Sonarr instances and download trailers for them.
"},{"location":"help/faq/#trailarr-is-not-downloading-trailers-for-some-movies-or-series-why","title":"Trailarr is not downloading trailers for some Movies or Series. Why?","text":"Trailarr monitors the Movies and Series from connected Radarr and Sonarr instances based on the Monitor Type set. Make sure you have correct Monitor Types set for the Movies and Series you want Trailarr to download trailers for.
More info about Monitor Types here.
"},{"location":"help/faq/#how-can-i-change-the-monitor-type-for-a-movie-or-series","title":"How can I change the Monitor Type for a Movie or Series?","text":"You can open up a Movie or Series details in Trailarr and click on the Monitor
button to change the Monitor Type for that Movie or Series. Trailarr will download a trailer for that in the next schedule.
Movies: Radarr provides a youtube trailer link for Movies that it gets from TMDB. Trailarr will attempt to download that trailer first, if that fails or not set, Trailarr downloads trailers based on the Movie title and year. If Trailarr downloaded an incorrect trailer, you can manually search on youtube and update the youtube trailer link in Movie details page in Trailarr.
Series: Sonarr does not provide a youtube trailer link for Series. Trailarr will search for the Series trailer based on the Series title and year. If Trailarr downloaded an incorrect trailer, you can manually search on youtube and update the youtube trailer link in Series details page in Trailarr.
Info
Trailarr will not delete the trailer that was already downloaded. You have to manually click on Delete
button to delete the trailer.
Trailarr uses yt-dlp to download youtube videos. Some videos have restrictions on downloading, and yt-dlp might not be able to download them. The solution is to supply a cookie file (Yt-dlp Cookies Path
) in Settings > Trailer > Advanced
to download restricted videos. See Settings for more info.
Trailarr will not download multiple trailers for same Movie or Series automatically. You can manually update the youtube trailer link and click Download
to download another trailer. Trailarr will download and save the new trailer in the Movie or Series folder along with the old trailer.
Trailarr downloads the best available video in the selected resolution, and then use ffmpeg to convert to selected audio and video codecs. This process can take some time based on the video size and your server hardware.
The amount of time it takes to convert a 3 minute video usually takes around 1-2 minutes on latest hardware (like i3-12100 or Ryzen 5 5600X).
If you are using a Raspberry Pi or a low powered server, it might take longer to convert the video. You can check the logs to see the progress of the conversion process.
"},{"location":"help/release-notes/","title":"Release Notes","text":""},{"location":"help/release-notes/#v024-beta-december-06-2024","title":"v0.2.4-beta - December 06, 2024","text":"What's New: \u2728
Trailer Silence Removal
that will detect and remove silence at end of video. Related to #75Logs
page, and logs now displays 1000 logs instead of 100.Bug Fixes: \ud83d\udc1b
player_client
option in yt-dlp
command as that can interfere with cookies when supplied.Other Changes: \u26a1
YouTube Cookies
in Docs with a recommended way to get cookies.txt
file.What's New: \u2728
Always Search
which when enabled will not use the YouTube trailer id provided by Arrs and searches on YouTube. Related to #6Search Query
to specify the query used to search for trailers on YouTube. Fixes #6Trailer Volume Level
to increase/decrease loudness of the downloaded trailer. Fixes #41WEBUI_DISABLE_AUTH=True
env variable in docker command. Fixes #67Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
media
and marked movie
and series
endpoints for deprecation. Updated Frontend to use media
API.What's New: \u2728
Update Available
in Settings > About page.trailer
in the filename instead of -trailer.
. Fixes #61Settings > About > Password
. Related to #31WEBUI_PASSWORD
ENV variable to ''
(empty) in docker command.Settings > About
page. Thanks to @rafapirotto for the PR #57.Bug Fixes: \ud83d\udc1b
Connection
with Path Mappings
raising an error. Fixes #53Other Changes: \u26a1
docket_check.py
to docker_check.py
in /backend/core/updates/
.light
and dark
modes in Frontend with prefers-color-scheme
media query.APP_VERSION
in Dev Container to 0.2.1-beta
.Trailarr not downloading specified trailer from YouTube
.Settings.md
to include instructions for getting Youtube cookies file. Fixes #62What's New: \u2728
Update Available
in Settings > About page.Bug Fixes: \ud83d\udc1b
trailer_url
in download_trailer
function to prevent errors when no trailer is found. Fixes #45f
keypress not working in Frontend. Fixes #44Other Changes: \u26a1
What's New: \u2728
APP_DATA_DIR
(appdata folder) from /data
to /config
. You need to remap your app data folder in your docker compose / set APP_DATA_DIR
Env variable to /data
explicitly.title
, year
, resolution
, vcodec
and acodec
options.review
in the title. Should help #36 admin
with password trailarr
. These cannot be updated now, will add an option to update them in future update. Fixes #31 DEBUG
to LOG_LEVEL
to make it consistent with what it does.Arr Data Refresh
task for that connection.Bug Fixes: \ud83d\udc1b
Trailer Subtitle Format
option saving to incorrect variable. Fixes #40 .webm
extensions.Other Changes: \u26a1
Release Notes
and some FAQ
s.monitor status
arg to Media object.What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
APP_DATA_DIR
ENV variable in docker command. If setting this make sure to use the same path in volume mapping for /data folder as well. See home for more instructions. fixes #21Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
APP_DATA_DIR
is modified. This won't have any effect on DATABASE_URI
if it was modified using ENV variable or directly within the app.What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
PUID
/PGID
when they already exist inside container, updated logic to use existing user/group if already exists. Fixes #17 and #13Settings > Connections
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
PUID
and PGID
supplied while creating container. Fixes #12Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
v0.0.3-beta
with minor changes to publish docker image with latest
tag.First Release! \ud83c\udf89
"},{"location":"install/docker-cli/","title":"Docker Run","text":"To run the application, you need to have Docker installed on your system.
"},{"location":"install/docker-cli/#installation","title":"Installation","text":"To run the application using the Docker CLI, run the following command:
docker run -d \\\n --name=trailarr \\\n -e TZ=America/New_York \\\n -e PUID=1000 \\\n -e PGID=1000 \\\n -p 7889:7889 \\\n -v <LOCAL_APPDATA_FOLDER>:/config \\\n -v <LOCAL_MEDIA_FOLDER>:<RADARR_ROOT_FOLDER> \\\n -v <LOCAL_MEDIA_FOLDER>:<SONARR_ROOT_FOLDER> \\\n --restart unless-stopped \\\n nandyalu/trailarr:latest\n
Open your browser and navigate to http://localhost:7889 to access the application.
Info
It is recommended to use docker-compose
to run the application, as it makes updating easier. See the Docker Compose guide for more information.
To update the application, run the following commands:
Pull latest image:
docker pull nandyalu/trailarr\n
Stop and remove the existing container:
docker stop trailarr && docker rm trailarr\n
Finally, run the updated container using the same docker run
command used during installation:
docker run -d ...\n
To run the application, you need to have Docker installed on your system.
"},{"location":"install/docker-compose/#installation","title":"Installation","text":"Follow the steps below to install the application using Docker Compose.
Create a new directory for the application:
mkdir trailarr && cd trailarr\n
Create a docker-compose.yml
file with the following content:
services:\n trailarr:\n image: nandyalu/trailarr:latest\n container_name: trailarr\n environment:\n - TZ=America/New_York\n - PUID=1000\n - PGID=1000\n ports:\n - 7889:7889\n volumes:\n - <LOCAL_APPDATA_FOLDER>:/config\n - <LOCAL_MEDIA_FOLDER>:<RADARR_ROOT_FOLDER>\n - <LOCAL_MEDIA_FOLDER>:<SONARR_ROOT_FOLDER>\n restart: on-failure\n
Update the env variables and volume mappings in the docker-compose.yml
file. See Environment Variables and Volume Mapping for the details.
Run the following command to start the application:
docker-compose up -d\n
Open your browser and navigate to http://localhost:7889 to access the application.
To update the application, run the following commands:
Pull the latest image:
docker-compose pull nandyalu/trailarr\n
Run the docker compose command to update the existing container:
docker-compose up -d\n
Environment variables are OPTIONAL.
Here are the optional environment variables you can set:
"},{"location":"install/env-variables/#app_data_dir","title":"APP_DATA_DIR
","text":"/config
.This environment variable is used to set the application data directory. If setting this, make sure to map the volume to the same directory.
Useful if you want to store the application data in a different directory than the default.
For example, if you want to store the application data in /app_config/abc
, you can set the APP_DATA_DIR
environment variable like this:
environment:\n - APP_DATA_DIR=/app_config/abc\n volumes:\n - /var/appdata/trailarr:/app_config/abc\n
Warning
If you are setting the APP_DATA_DIR
environment variable, make sure to set an absolute path like /data
or /config/abc
, and map the volume to the same directory.
Danger
Do not set APP_DATA_DIR
to /app
or /tmp
or any other linux system directory. This could cause the application to not work correctly or data loss.
PGID
","text":"1000
.This environment variable is used to set the group ID for the application.
Useful if you have permission issues with the application writing to the volume. You can set the group ID to the group of the volume or a group that has read/write permissions to the volume.
environment:\n - PGID=1000\n
"},{"location":"install/env-variables/#puid","title":"PUID
","text":"1000
.This environment variable is used to set the user ID for the application.
Useful if you have permission issues with the application writing to the volume. You can set the user ID to the owner of the volume or a user that has read/write permissions to the volume.
environment:\n - PUID=1000\n
"},{"location":"install/env-variables/#tz","title":"TZ
","text":"America/New_York
.This environment variable is used to set the timezone for the application.
For a list of valid timezones, see tz database time zones.
environment:\n - TZ=America/New_York\n
"},{"location":"install/env-variables/#webui_disable_auth","title":"WEBUI_DISABLE_AUTH
","text":"False
.This environment variable is used to disable the authentication for the web interface.
environment:\n - WEBUI_DISABLE_AUTH=True # This will disable the web UI authentication\n
"},{"location":"install/env-variables/#webui_password","title":"WEBUI_PASSWORD
","text":"trailarr
(hashed).Trailarr Web Interface has a browser login to access the app. Default credentials are:
Username: admin\nPassword: trailarr\n
If you forget your password, set this environment variable to ''
(empty string) to reset the password for the web interface to default.
environment:\n - WEBUI_PASSWORD='' # This will reset the password to default\n
To change the password, go to Settings > About > Password
in web interface.
Info
If you change your password from the web interface, the password will be hashed and stored internally. There is no way to retrieve the password as only a hashed version is stored, you need to reset it if you forget it.
Warning
Once you change your password, don't forget to remove the WEBUI_PASSWORD
environment variable from the docker-compose file.
Here is an example of setting the environment variables:
environment:\n - TZ=America/Los_Angeles\n - PUID=1000\n - PGID=1000\n - APP_DATA_DIR=/data/trailarr\n volumes:\n - /var/appdata/trailarr:/data/trailarr\n
This sets the environment variables to run the app with following settings:
Volume mapping is REQUIRED!
"},{"location":"install/volume-mapping/#appdata","title":"AppData","text":"Trailarr needs a folder to store the application data. You need to map a local folder to the /config
folder in the Trailarr container.
Change <LOCAL_APPDATA_FOLDER>
to the folder where you want to store the application data.
For example, if you want to store the application data in /var/appdata/trailarr
, the volume mapping would look like this:
volumes:\n - /var/appdata/trailarr:/config\n
Warning
If you are setting the APP_DATA_DIR
environment variable, make sure to map the volume to the same directory.
Trailarr needs access to the media folders of Radarr and Sonarr to monitor the media files. You need to map the media folders of Radarr and Sonarr to the Trailarr container.
There are 2 parts to a volume mapping:
/mnt/disk1/media/movies
on your system, this is the local folder./media/movies
inside the Radarr container, this is the container folder. So, you need to map it similarly to the Trailarr container as well. - /mnt/disk1/media/movies:/media/movies\n
Trailarr gets the media folders from the Radarr and Sonarr connections you add. So, you need to map the root folder of Radarr and Sonarr to the Trailarr container in a way that Trailarr can access the media files on the paths provided by Radarr and Sonarr.
Some examples are provided below.
If you need additional help, there is a Docker Config Tool that will help you generate the docker-compose file with the correct volume mappings and path mappings.
If you are still facing issues, you can ask for help in the Discord Server.
Tip
Make sure the folder paths are correct and the Trailarr has read/write access to the folders.
Warning
If your folder paths have spaces, you need to escape them with a backslash (\\
) or enclose the path in quotes (\"
) like /tv\\ shows
or /\"tv shows\"
.
If you want to monitor the movies in Radarr, you need to map the root folder of Radarr to the Trailarr container.
For example, if you have movies in /mnt/disk1/media/movies
on your system, and Radarr has this folder mapped to /media/movies
inside the Radarr container, the volume mapping would look like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n
"},{"location":"install/volume-mapping/#sonarr","title":"Sonarr","text":"If you want to monitor the TV shows in Sonarr, you need to map the root folder of Sonarr to the Trailarr container.
For example, if you have TV shows in /mnt/disk1/media/tv
on your system, and Sonarr has this folder mapped to /media/tv
inside the Sonarr container, the volume mapping would look like this:
volumes:\n - /mnt/disk1/media/tv:/media/tv\n
"},{"location":"install/volume-mapping/#examples","title":"Examples","text":""},{"location":"install/volume-mapping/#example-1-different-local-container-folders","title":"Example 1 - Different Local & Container folders","text":"Radarr and Sonarr have different local folders mapped to different folders inside their containers.
Radarr has /mnt/disk1/movies
mapped to /media/movies
and Sonarr has /mnt/disk1/tv
mapped to /media/tv
, you can map them to Trailarr like this:
volumes:\n - /mnt/disk1/movies:/media/movies\n - /mnt/disk1/tv:/media/tv\n
"},{"location":"install/volume-mapping/#example-2-same-local-folder-parent-different-container-folders","title":"Example 2 - Same Local folder parent, Different Container folders","text":"Both Radarr and Sonarr have different local folders mapped to the different folders inside their containers.
Radarr has /mnt/disk1/media/movies
mapped to /media/movies
and Sonarr has /mnt/disk1/media/tv
mapped to /media/tv
. However both mapped local folders are in the same parent folder /mnt/disk1/media
. So, you can map the parent folder to Trailarr like this:
volumes:\n - /mnt/disk1/media:/media\n
OR, you can map the individual folders to Trailarr like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n - /mnt/disk1/media/tv:/media/tv\n
"},{"location":"install/volume-mapping/#example-3-different-local-folders-same-container-folder","title":"Example 3 - Different Local folders, Same Container folder","text":"If you have both Radarr and Sonarr with different local folders mapped to the same folder inside their containers, you can do custom mapping of local folders and set the appropriate path mapping while adding those connections!
For example, if Radarr has /mnt/disk1/media/movies
mapped to /media
and Sonarr has /mnt/disk1/media/tv
mapped to /media
, you can do custom mapping like below:
Map /mnt/disk1/media
to /media
in Trailarr like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n - /mnt/disk1/media/tv:/media/tv\n
Set the path mapping for Radarr like:
Tip
The Path From
needs to match root folder inside Radarr (/media
), and the Path To
needs to match the folder inside Trailarr where the media is mapped (/media/movies
).
Set the path mapping for Sonarr like:
Tip
The Path From
needs to match root folder inside Sonarr (/media
), and the Path To
needs to match the folder inside Trailarr where the media is mapped (/media/tv
).
If you are using Windows, you need to modify the Windows folder path to be compatible with Linux. You can use the following format for the volume mapping:
volumes:\n /c/Users/username/Movies:/media/movies\n /c/Users/username/TV:/media/tv\n
C:\\Users\\username\\Movies
in your system to /media/movies
within the Trailarr container./media/movies
and /media/tv
paths to match the paths set in the Radarr / Sonarr container volume mappings.Network Shares
If you are using network shares, you need to mount the network share to your system as a drive and then map the local folder to the Trailarr container.
You could possibly map the network share directly to the Trailarr container, however, Trailarr won't be able to provide support for it at this time.
Now, you if you are running Radarr / Sonarr as docker containers, you can skip the next step and proceed to the Environment Variables setup.
Otherwise, you need to setup the Path Mapping for Radarr and Sonarr connections, as the media folder paths in Radarr/Sonarr will look like C:\\Users\\username\\Movies\\The Matrix (1999)
, which won't be accessible by Trailarr as it's not a valid linux path. So, we need to add a path mapping to tell Trailarr what to replace that path with.
Remember, in step 1 we mapped C:\\Users\\username\\Movies
to /media/movies
, so you need to go into Settings -> Connections
, open Radarr/Sonarr and Add Path Mapping like this:
Path From: C:\\Users\\username\\Movies\n Path To: /media/movies\n
Path From: C:\\Users\\username\\TV\n Path To: /media/tv\n
Now, Trailarr will replace C:\\Users\\username\\Movies
with /media/movies
in the media paths provided by Radarr, and C:\\Users\\username\\TV
with /media/tv
in the media paths provided by Sonarr.
Navigate to the application in your browser at http://localhost:7889/settings/connections.
Trailarr Login
When you open Trailarr in browser, it will ask you to login. Default login is:
Username: admin\nPassword: trailarr\n
Go to Settings
> Connections
and Click the Add New
button to add your Radarr and Sonarr instances.
Add your Radarr and Sonarr instances.
Set the Connection Name
to a name of your choice.
Set the Type
to either Radarr
or Sonarr
.
Set the Monitor Type
to your preference. See Monitor Types below for more information.
Tip
You can set different monitor types for each Radarr/Sonarr instance.
Add the URL
for your Radarr or Sonarr instance. Full URL of your Radarr or Sonarr instance including the port number. For example, http://192.168.0.15:6969
.
Add the API Key
from your Radarr or Sonarr instance. Get API Key
by opening Radarr/Sonarr in your browser, going to Settings > General
, then copy the API key.
If you have a setup that requires Path Mappings
to be set as described in Volume Mapping, you can add them here. See Path Mapping below for more information.
If you need additional help, there is a Docker Config Tool that will help you generate the docker-compose file with the correct volume mappings and path mappings.
Tip
You can set different path mappings for each Radarr/Sonarr instance.
Warning
Path mappings are optional and only required if you have a setup that requires them.
Click the Save
button to save the connection.
Repeat the steps for each Radarr and Sonarr instance you want to monitor.
That's it! The application will now start downloading trailers for your media library. See settings for more information on how to adjust settings.
Missing
","text":"Monitors and downloads trailers for movies/series without a trailer.
"},{"location":"setup/connections/#new","title":"New
","text":"Only Monitors and download trailers for movies/series that gets added after the change.
"},{"location":"setup/connections/#sync","title":"Sync
","text":"Monitors and downloads trailers for movie/series that are monitored in Radarr/Sonarr.
"},{"location":"setup/connections/#none","title":"None
","text":"Turns off monitoring for the connection and does not download any trailers.
Tip
If you have a huge library and don't want to download trailers for all of them, set the monitor type to None
when adding a Radarr/Sonarr Connection. Wait for an hour or so to let the app sync all media from that connection, and change it to New
to download trailers for new media. You can always manually set the monitor type for the movies/series you want to download trailers for.
In simple words, Path Mappings are used to tell Trailarr what to replace the path with when it gets a path from Radarr/Sonarr. Path From
is what it looks for in the path, and Path To
is what it replaces it with.
If you are using Windows, you might need to add path mappings in most cases, unless you are also running Radarr/Sonarr as docker containers. See Volume Mapping for more information.
Info
Path mappings are optional and only required if you have a setup that requires them. You can set different path mappings for each Radarr/Sonarr instance.
ExampleAdding a path mapping for a connection as:
Path From: C:\\Users\\username\\Movies\nPath To: /media/movies\n
will replace C:\\Users\\username\\Movies
with /media/movies
in the path received from Radarr/Sonarr. So, if Radarr/Sonarr sends a path like C:\\Users\\username\\Movies\\The MAtrix (1999)
, it will be replaced with /media/movies/The Matrix (1999)
. Click the Add Path Mapping
button.
Set the Path From
to the path inside Radarr/Sonarr connection.
Set the Path To
to the path inside the Trailarr container.
Click the Save
button to save the path mapping.
Repeat the steps for each path mapping you want to add, if needed.
Tip
Path mappings are useful when the media folder available to Radarr/Sonarr is same for multiple connections. For example, if Radarr has media folder set to /media
and Sonarr has media folder set to /media
, you can map the local folder for Radarr media to /media/movies
and Sonarr media to /media/tv
and then in add path mappings with Path From
set to /media
and Path To
set to /media/movies
for Radarr and /media/tv
for Sonarr connections.
Warning
For Path Mappings to work, you need to set the Path From
to the exact path inside Radarr/Sonarr connection and Path To
to the exact path inside the Trailarr container. If the paths do not match, the path mapping will not work. Path Mappings needs to be paired with Volume Mapping
in the docker-compose.yml
file. See Volume Mapping for more information.
There are a few settings that you can use to customize the behavior of Trailarr app. These settings can be set by opening the app in browser http://localhost:7889/settings and navigatings to Settings > Trailer
page.
true
Enable this setting to monitor trailers for connections. When enabled, the app will automatically download trailers for media in Radarr and Sonarr.
Note
Disabling this will disable monitoring of media for all connections.
"},{"location":"setup/settings/#monitor-interval","title":"Monitor Interval","text":"60
minutes. Minimum is 10
minutes`. Frequency (in minutes) to check for new media in Radarr/Sonarr.
Info
Changing this setting will require a restart of the app (container) to take effect.
"},{"location":"setup/settings/#file-settings","title":"File Settings","text":""},{"location":"setup/settings/#wait-for-media","title":"Wait For Media","text":"false
Enable this setting to wait for media to be downloaded before downloading trailers.
"},{"location":"setup/settings/#trailer-folder-movie","title":"Trailer Folder Movie","text":"false
Enable this setting to save trailers in a Trailers
folder inside the movie folder.
true
Enable this setting to save trailers in a Trailers
folder inside the series folder.
30
secondsSelect the minimum duration of the trailers to download. Trailers with a duration less than this value will be skipped. Minimum is 30
seconds.
600
secondsSelect the maximum duration of the trailers to download. Trailers with a duration greater than this value will be skipped. Minimum is Trailer Minimum Duration + 60
seconds. Maximum is 600
seconds.
Info
If you want to download trailers with a duration of 2 minutes to 5 minutes, set Trailer Minimum Duration
to 120
seconds and Trailer Maximum Duration
to 300
seconds.
1080
Select the resolution of the trailers to download. Available options are 240
, 360
, 480
, 720
, 1080
, 1440
, 2160
.
Info
If set to 1080
, the app will try to download trailers with a resolution of 1080p, if available. If not, it will fallback to the next lower resolution.
mkv
Select the file format of the trailers to download. Available options are mkv
, mp4
, webm
.
Info
App will download trailer in the available format and then convert it to the selected format using Ffmpeg.
"},{"location":"setup/settings/#trailer-video-format","title":"Trailer Video Format","text":"h264
Select the video codec of the trailers to download. Available options are h264
, h265
, vp8
, vp9
, av1
.
Info
App will download trailer in the available codec and then convert it to the selected codec using Ffmpeg.
"},{"location":"setup/settings/#trailer-audio-format","title":"Trailer Audio Format","text":"aac
Select the audio codec of the trailers to download. Available options are aac
, ac3
, eac3
, flac
, opus
.
Info
App will download trailer in the available codec and then convert it to the selected codec using Ffmpeg.
"},{"location":"setup/settings/#trailer-subtitles-enabled","title":"Trailer Subtitles Enabled","text":"true
Enable this setting to download subtitles for trailers, if available.
"},{"location":"setup/settings/#trailer-subtitles-format","title":"Trailer Subtitles Format","text":"srt
Select the format of the subtitles to download. Available options are srt
, vtt
, pgs
.
Info
App will download subtitles in the available format and then convert it to the selected format using Ffmpeg.
"},{"location":"setup/settings/#trailer-subtitles-language","title":"Trailer Subtitles Language","text":"en
Select the language of the subtitles to download. A valid ISO 639-1 language code is required. See ISO 639-1 language codes for more information.
Info
Multiple languages can be set with a comma separated list. For example, en,es,fr
.
true
Enable this setting to embed metadata in the trailers.
"},{"location":"setup/settings/#trailer-remove-sponsorblocks","title":"Trailer Remove SponsorBlocks","text":"true
Enable this setting to remove sponsor blocks from the trailers, if available. Sponsor blocks are sections of the trailer that contain promotional content like intros, outros, ads, etc.
"},{"location":"setup/settings/#trailer-web-optimized","title":"Trailer Web Optimized","text":"true
Enable this setting to optimize trailers for web streaming. This will allow trailers to start playing faster while streaming over network. Might slightly increase file size.
"},{"location":"setup/settings/#advanced-settings","title":"Advanced Settings","text":"These are advanced settings, if you don't know what they do, do not modify them!
"},{"location":"setup/settings/#log-level","title":"Log Level","text":"Info
Select the logging level for the app. Available options are Debug
, Info
, Warning
, Error
.
If you are having issues and need to troubleshoot or request help, set the log level to Debug
to get more detailed logs.
100
Set the audio volume level of the downloaded trailer. Use this option to increase or decrease audio loudness of the trailer. Set to 100
for no change. Minimum is 1
. Maximum is 200
.
Warning
Do not modify this setting unless you know what you are doing.
"},{"location":"setup/settings/#exclude-words-in-title","title":"Exclude Words in Title","text":"Enter a comma separated list of words to exclude from the title of the trailers. If the title of the trailer contains any of the words in the list, the trailer will be skipped. For example, teaser,clip,featurette
.
false
Enable this setting to always search YouTube for trailers. If disabled, the app will only search YouTube if it cannot find a trailer in Radarr, Sonarr doesn't provide youtube trailer ids.
"},{"location":"setup/settings/#youtube-search-query","title":"Youtube Search Query","text":"{title} {year} {is_movie} trailer
Enter a search query to use when searching for trailers on YouTube. Wrap a supported variable in {}
like {title}
and it will be replaced in the actual search query. Supports Python string formatting options.
Available options are:
title
: Title of the media. Eg: 'The Matrix'year
: Year of the media. Eg: '1999'is_movie
: 'movie' if the media is a movie, 'series' if the media is a series.language
: Language of the media. Eg: 'English'{title} - Trailer-trailer.{ext}
Select the file name format for the trailers. Wrap a supported variable in {}
like {title}
and it will be replaced in the actual file name. Supports Python string formatting options.
Available options are:
title
: Title of the media. Eg: 'The Matrix'year
: Year of the media. Eg: '1999'resolution
: Resolution of the trailer. Eg: '1080p'vcodec
: Video codec of the trailer. Eg: 'h264'acodec
: Audio codec of the trailer. Eg: 'aac'None
If you are having issues downloading trailers due to age restrictions, bot detection, etc., you can set the path to a file containing YouTube cookies. This will allow the app to use the cookies to bypass restrictions.
See Export YouTube Cookies.txt file for more info.
Warning
Make sure to save the cookies file in a secure location and map the volume to the container. Set the path to the file in this setting.
"},{"location":"setup/settings/#experimental-settings","title":"Experimental Settings","text":"These are experimental options, might not work as expected! You can enable them if you want to try. Please report any issues on Github
"},{"location":"setup/settings/#trailer-remove-silence","title":"Trailer Remove Silence","text":"Enable this option to let Trailarr analyse the video file and remove it. This helps remove video end credits usually added to show end credits or other video suggestions on YouTube.
Silence is detected using ffmpeg silencedetect
and if there is any silence (less than 30dB audio) for more than 3 seconds at the end of video file, video will be trimmed till the starting timestamp of the detected silence.
Trailarr is a Docker application to download and manage trailers for your Radarr, and Sonarr libraries.
Github: https://github.com/nandyalu/trailarr/
Docker Hub: https://hub.docker.com/r/nandyalu/trailarr/
Documentation: https://nandyalu.github.io/trailarr
Reddit: https://www.reddit.com/r/trailarr
Discord: https://discord.gg/BAJsv76N
"},{"location":"#features","title":"Features","text":"See the Installation guide for detailed instructions on how to install Trailarr.
"},{"location":"#setup","title":"Setup","text":"See the Setup guide for detailed instructions on how to setup Trailarr.
"},{"location":"#dependencies","title":"Dependencies","text":"Trailarr is built using the following libraries and tools:
If you have any questions or need help, please read the FAQ first. If you still need help, please create an issue on the GitHub repository or post a question on Reddit or join our Discord (recommended).
"},{"location":"#issues","title":"Issues","text":"Issues are very valuable to this project.
Thank you for creating them.
"},{"location":"#contributing","title":"Contributing","text":"Contributions are welcome! Please see the Contributing guide for more information.
Looking for a frontend developer (Angular) to help with the UI, if you are interested, please reach out in the Discussions or Reddit.
"},{"location":"#license","title":"License","text":"This project is licensed under the terms of the GPL v3 license. See GPL-3.0 license for more details.
"},{"location":"#disclaimer","title":"Disclaimer","text":"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"CONTRIBUTING/","title":"Contributing to Trailarr","text":"First off, thank you for considering contributing to Trailarr. It's people like you that make Trailarr such a great tool.
"},{"location":"CONTRIBUTING/#getting-started","title":"Getting Started","text":"Open .devcontainer > devcontainer.json
and change the mounts
to your desired folders.
\"mounts\": [\n \"source=/var/appdata/trailarr-dev,target=/data,type=bind,consistency=cached\",\n \"source=/media/all/Media,target=/media,type=bind,consistency=cached\"\n ],\n
Note: Below steps are optional, if you don't want to test any changes that would require connecting to Radarr
and/or Sonarr
, you can simply remove the mounts
section from the devcontainer.json
file. 1. source
is the path on your host machine. 2. target
is the path inside the devcontainer. 3. Change the mount
for /data
to a folder where you want to store the data. Do not use the same folder as your production data. 4. Change the mount
for /media
to the your media folder mapping as set in Radarr
and/or Sonarr
.
VS Code will automatically detect the devcontainer configuration. Click on Reopen in Container
. This will start the build of the Docker container and place you inside it.
NOTE: Be sure to merge the latest from \"upstream\" before making a pull request!
"},{"location":"CONTRIBUTING/#code-of-conduct","title":"Code of Conduct","text":"This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code.
"},{"location":"CONTRIBUTING/#issue-process","title":"Issue Process","text":"Issues are very valuable to this project.
Thank you for creating them.
"},{"location":"CONTRIBUTING/#pull-request-process","title":"Pull Request Process","text":"To ensure consistency throughout the source code, keep these rules in mind as you are working:
The commit message:
By contributing, you agree that your contributions will be licensed under its GPL-3.0 license.
"},{"location":"install/","title":"Install","text":""},{"location":"install/#requirements","title":"Requirements","text":"To run this application, you need the following installed on your system:
See Environment Variables for the list of optional environment variables set for the application.
"},{"location":"install/#volume-mapping","title":"Volume Mapping","text":"See Volume Mapping for the volume mapping details.
"},{"location":"install/#installation","title":"Installation","text":""},{"location":"install/#docker-compose","title":"Docker Compose","text":"See Docker Compose for the Docker Compose installation instructions.
"},{"location":"install/#docker-cli","title":"Docker CLI","text":"See Docker CLI for the Docker CLI installation instructions.
"},{"location":"install/#help","title":"Help","text":"Use the Docker Config Tool to generate the Docker Compose file/CLI command for setting up Docker Volumes and Path Mappings for Trailarr.
"},{"location":"help/changelog/","title":"Changelog","text":"markdown
::github-release-changelog \\ base_indent: 2 token: !ENV GITHUB_TOKEN match: '[0-9+].[0-9+].[0-9]+' autoprocess: true"},{"location":"help/common/","title":"Common","text":""},{"location":"help/common/#youtube-cookies","title":"YouTube Cookies","text":"
If you are having issues downloading trailers due to age restrictions, bot detection, etc., you can save your YouTube cookies and set the Yt-dlp Cookies Path to cookies.txt file containing YouTube cookies. This will allow the app to use the cookies to bypass restrictions.
YouTube rotates cookies frequently on open YouTube browser tabs as a security measure. To export cookies that will remain working with yt-dlp, you will need to export cookies in such a way that they are never rotated.
Note
This is a hack to bypass YouTube restrictions and it might not always work. There is nothing Trailarr can do in those situations.
"},{"location":"help/common/#export-youtube-cookiestxt-file","title":"Export YouTube Cookies.txt file","text":"The suggested way to get the cookies file is:
cookies.txt
by setting Export Format
to Netscape
./var/appdata/trailarr
to /config
in the container, save the cookies file in /var/appdata/trailarr
folder.Settings > Trailer
. Under Advanced
settings, set Yt-dlp Cookies Path
to /config/cookies.txt
(if you saved the file in /var/appdata/trailarr
folder).See below for more info regarding youtube downloaders and cookies:
Warning
Make sure to save the cookies file in a secure location and map the volume to the container. Set the path to the cookies file in Yt-dlp Cookies Path
setting.
Yes, this works with Plex, Emby, and Jellyfin. Trailarr downloads trailers for Movies and Series, and saves them in their respective media folder. Plex, Emby, and Jellyfin can pick up these trailers and display them along with the Movie or Series.
"},{"location":"help/faq/#how-can-i-watch-the-trailers","title":"How can I watch the trailers?","text":"You can watch the trailers in the Movie or Series details in Plex, Emby, or Jellyfin. Trailers downloaded by Trailarr are saved in the same folder as the Movie or Series, for Plex, Emby, and Jellyfin to recognize and display them along with the Movie or Series.
"},{"location":"help/faq/#can-i-use-tailarr-without-radarr-or-sonarr","title":"Can I use Tailarr without Radarr or Sonarr?","text":"No, Trailarr relies on data from Radarr and Sonarr to monitor Movies and Series. You need to have Radarr and/or Sonarr setup and connected to Trailarr to download trailers.
"},{"location":"help/faq/#can-i-use-trailarr-with-multiple-radarr-or-sonarr-instances","title":"Can I use Trailarr with multiple Radarr or Sonarr instances?","text":"Yes, you can connect multiple Radarr and Sonarr instances to Trailarr. Trailarr will monitor Movies and Series from all connected Radarr and Sonarr instances and download trailers for them.
"},{"location":"help/faq/#trailarr-is-not-downloading-trailers-for-some-movies-or-series-why","title":"Trailarr is not downloading trailers for some Movies or Series. Why?","text":"Trailarr monitors the Movies and Series from connected Radarr and Sonarr instances based on the Monitor Type set. Make sure you have correct Monitor Types set for the Movies and Series you want Trailarr to download trailers for.
More info about Monitor Types here.
"},{"location":"help/faq/#how-can-i-change-the-monitor-type-for-a-movie-or-series","title":"How can I change the Monitor Type for a Movie or Series?","text":"You can open up a Movie or Series details in Trailarr and click on the Monitor
button to change the Monitor Type for that Movie or Series. Trailarr will download a trailer for that in the next schedule.
Movies: Radarr provides a youtube trailer link for Movies that it gets from TMDB. Trailarr will attempt to download that trailer first, if that fails or not set, Trailarr downloads trailers based on the Movie title and year. If Trailarr downloaded an incorrect trailer, you can manually search on youtube and update the youtube trailer link in Movie details page in Trailarr.
Series: Sonarr does not provide a youtube trailer link for Series. Trailarr will search for the Series trailer based on the Series title and year. If Trailarr downloaded an incorrect trailer, you can manually search on youtube and update the youtube trailer link in Series details page in Trailarr.
Info
Trailarr will not delete the trailer that was already downloaded. You have to manually click on Delete
button to delete the trailer.
Trailarr uses yt-dlp to download youtube videos. Some videos have restrictions on downloading, and yt-dlp might not be able to download them. The solution is to supply a cookie file (Yt-dlp Cookies Path
) in Settings > Trailer > Advanced
to download restricted videos. See Settings for more info.
Trailarr will not download multiple trailers for same Movie or Series automatically. You can manually update the youtube trailer link and click Download
to download another trailer. Trailarr will download and save the new trailer in the Movie or Series folder along with the old trailer.
Trailarr downloads the best available video in the selected resolution, and then use ffmpeg to convert to selected audio and video codecs. This process can take some time based on the video size and your server hardware.
The amount of time it takes to convert a 3 minute video usually takes around 1-2 minutes on latest hardware (like i3-12100 or Ryzen 5 5600X).
If you are using a Raspberry Pi or a low powered server, it might take longer to convert the video. You can check the logs to see the progress of the conversion process.
"},{"location":"help/release-notes/","title":"Release Notes","text":""},{"location":"help/release-notes/#v024-beta-december-06-2024","title":"v0.2.4-beta - December 06, 2024","text":"Other Changes: \u26a1
yt-dlp
stopped working a few days ago, updating to the latest version!What's New: \u2728
Trailer Silence Removal
that will detect and remove silence at end of video. Related to #75Logs
page, and logs now displays 1000 logs instead of 100.Bug Fixes: \ud83d\udc1b
player_client
option in yt-dlp
command as that can interfere with cookies when supplied.Other Changes: \u26a1
YouTube Cookies
in Docs with a recommended way to get cookies.txt
file.What's New: \u2728
Always Search
which when enabled will not use the YouTube trailer id provided by Arrs and searches on YouTube. Related to #6Search Query
to specify the query used to search for trailers on YouTube. Fixes #6Trailer Volume Level
to increase/decrease loudness of the downloaded trailer. Fixes #41WEBUI_DISABLE_AUTH=True
env variable in docker command. Fixes #67Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
media
and marked movie
and series
endpoints for deprecation. Updated Frontend to use media
API.What's New: \u2728
Update Available
in Settings > About page.trailer
in the filename instead of -trailer.
. Fixes #61Settings > About > Password
. Related to #31WEBUI_PASSWORD
ENV variable to ''
(empty) in docker command.Settings > About
page. Thanks to @rafapirotto for the PR #57.Bug Fixes: \ud83d\udc1b
Connection
with Path Mappings
raising an error. Fixes #53Other Changes: \u26a1
docket_check.py
to docker_check.py
in /backend/core/updates/
.light
and dark
modes in Frontend with prefers-color-scheme
media query.APP_VERSION
in Dev Container to 0.2.1-beta
.Trailarr not downloading specified trailer from YouTube
.Settings.md
to include instructions for getting Youtube cookies file. Fixes #62What's New: \u2728
Update Available
in Settings > About page.Bug Fixes: \ud83d\udc1b
trailer_url
in download_trailer
function to prevent errors when no trailer is found. Fixes #45f
keypress not working in Frontend. Fixes #44Other Changes: \u26a1
What's New: \u2728
APP_DATA_DIR
(appdata folder) from /data
to /config
. You need to remap your app data folder in your docker compose / set APP_DATA_DIR
Env variable to /data
explicitly.title
, year
, resolution
, vcodec
and acodec
options.review
in the title. Should help #36 admin
with password trailarr
. These cannot be updated now, will add an option to update them in future update. Fixes #31 DEBUG
to LOG_LEVEL
to make it consistent with what it does.Arr Data Refresh
task for that connection.Bug Fixes: \ud83d\udc1b
Trailer Subtitle Format
option saving to incorrect variable. Fixes #40 .webm
extensions.Other Changes: \u26a1
Release Notes
and some FAQ
s.monitor status
arg to Media object.What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
APP_DATA_DIR
ENV variable in docker command. If setting this make sure to use the same path in volume mapping for /data folder as well. See home for more instructions. fixes #21Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
APP_DATA_DIR
is modified. This won't have any effect on DATABASE_URI
if it was modified using ENV variable or directly within the app.What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
PUID
/PGID
when they already exist inside container, updated logic to use existing user/group if already exists. Fixes #17 and #13Settings > Connections
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
PUID
and PGID
supplied while creating container. Fixes #12Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
What's New: \u2728
Bug Fixes: \ud83d\udc1b
Other Changes: \u26a1
v0.0.3-beta
with minor changes to publish docker image with latest
tag.First Release! \ud83c\udf89
"},{"location":"install/docker-cli/","title":"Docker Run","text":"To run the application, you need to have Docker installed on your system.
"},{"location":"install/docker-cli/#installation","title":"Installation","text":"To run the application using the Docker CLI, run the following command:
docker run -d \\\n --name=trailarr \\\n -e TZ=America/New_York \\\n -e PUID=1000 \\\n -e PGID=1000 \\\n -p 7889:7889 \\\n -v <LOCAL_APPDATA_FOLDER>:/config \\\n -v <LOCAL_MEDIA_FOLDER>:<RADARR_ROOT_FOLDER> \\\n -v <LOCAL_MEDIA_FOLDER>:<SONARR_ROOT_FOLDER> \\\n --restart unless-stopped \\\n nandyalu/trailarr:latest\n
Open your browser and navigate to http://localhost:7889 to access the application.
Info
It is recommended to use docker-compose
to run the application, as it makes updating easier. See the Docker Compose guide for more information.
To update the application, run the following commands:
Pull latest image:
docker pull nandyalu/trailarr\n
Stop and remove the existing container:
docker stop trailarr && docker rm trailarr\n
Finally, run the updated container using the same docker run
command used during installation:
docker run -d ...\n
To run the application, you need to have Docker installed on your system.
"},{"location":"install/docker-compose/#installation","title":"Installation","text":"Follow the steps below to install the application using Docker Compose.
Create a new directory for the application:
mkdir trailarr && cd trailarr\n
Create a docker-compose.yml
file with the following content:
services:\n trailarr:\n image: nandyalu/trailarr:latest\n container_name: trailarr\n environment:\n - TZ=America/New_York\n - PUID=1000\n - PGID=1000\n ports:\n - 7889:7889\n volumes:\n - <LOCAL_APPDATA_FOLDER>:/config\n - <LOCAL_MEDIA_FOLDER>:<RADARR_ROOT_FOLDER>\n - <LOCAL_MEDIA_FOLDER>:<SONARR_ROOT_FOLDER>\n restart: on-failure\n
Update the env variables and volume mappings in the docker-compose.yml
file. See Environment Variables and Volume Mapping for the details.
Run the following command to start the application:
docker-compose up -d\n
Open your browser and navigate to http://localhost:7889 to access the application.
To update the application, run the following commands:
Pull the latest image:
docker-compose pull nandyalu/trailarr\n
Run the docker compose command to update the existing container:
docker-compose up -d\n
Environment variables are OPTIONAL.
Here are the optional environment variables you can set:
"},{"location":"install/env-variables/#app_data_dir","title":"APP_DATA_DIR
","text":"/config
.This environment variable is used to set the application data directory. If setting this, make sure to map the volume to the same directory.
Useful if you want to store the application data in a different directory than the default.
For example, if you want to store the application data in /app_config/abc
, you can set the APP_DATA_DIR
environment variable like this:
environment:\n - APP_DATA_DIR=/app_config/abc\n volumes:\n - /var/appdata/trailarr:/app_config/abc\n
Warning
If you are setting the APP_DATA_DIR
environment variable, make sure to set an absolute path like /data
or /config/abc
, and map the volume to the same directory.
Danger
Do not set APP_DATA_DIR
to /app
or /tmp
or any other linux system directory. This could cause the application to not work correctly or data loss.
PGID
","text":"1000
.This environment variable is used to set the group ID for the application.
Useful if you have permission issues with the application writing to the volume. You can set the group ID to the group of the volume or a group that has read/write permissions to the volume.
environment:\n - PGID=1000\n
"},{"location":"install/env-variables/#puid","title":"PUID
","text":"1000
.This environment variable is used to set the user ID for the application.
Useful if you have permission issues with the application writing to the volume. You can set the user ID to the owner of the volume or a user that has read/write permissions to the volume.
environment:\n - PUID=1000\n
"},{"location":"install/env-variables/#tz","title":"TZ
","text":"America/New_York
.This environment variable is used to set the timezone for the application.
For a list of valid timezones, see tz database time zones.
environment:\n - TZ=America/New_York\n
"},{"location":"install/env-variables/#webui_disable_auth","title":"WEBUI_DISABLE_AUTH
","text":"False
.This environment variable is used to disable the authentication for the web interface.
environment:\n - WEBUI_DISABLE_AUTH=True # This will disable the web UI authentication\n
"},{"location":"install/env-variables/#webui_password","title":"WEBUI_PASSWORD
","text":"trailarr
(hashed).Trailarr Web Interface has a browser login to access the app. Default credentials are:
Username: admin\nPassword: trailarr\n
If you forget your password, set this environment variable to ''
(empty string) to reset the password for the web interface to default.
environment:\n - WEBUI_PASSWORD='' # This will reset the password to default\n
To change the password, go to Settings > About > Password
in web interface.
Info
If you change your password from the web interface, the password will be hashed and stored internally. There is no way to retrieve the password as only a hashed version is stored, you need to reset it if you forget it.
Warning
Once you change your password, don't forget to remove the WEBUI_PASSWORD
environment variable from the docker-compose file.
Here is an example of setting the environment variables:
environment:\n - TZ=America/Los_Angeles\n - PUID=1000\n - PGID=1000\n - APP_DATA_DIR=/data/trailarr\n volumes:\n - /var/appdata/trailarr:/data/trailarr\n
This sets the environment variables to run the app with following settings:
Volume mapping is REQUIRED!
"},{"location":"install/volume-mapping/#appdata","title":"AppData","text":"Trailarr needs a folder to store the application data. You need to map a local folder to the /config
folder in the Trailarr container.
Change <LOCAL_APPDATA_FOLDER>
to the folder where you want to store the application data.
For example, if you want to store the application data in /var/appdata/trailarr
, the volume mapping would look like this:
volumes:\n - /var/appdata/trailarr:/config\n
Warning
If you are setting the APP_DATA_DIR
environment variable, make sure to map the volume to the same directory.
Trailarr needs access to the media folders of Radarr and Sonarr to monitor the media files. You need to map the media folders of Radarr and Sonarr to the Trailarr container.
There are 2 parts to a volume mapping:
/mnt/disk1/media/movies
on your system, this is the local folder./media/movies
inside the Radarr container, this is the container folder. So, you need to map it similarly to the Trailarr container as well. - /mnt/disk1/media/movies:/media/movies\n
Trailarr gets the media folders from the Radarr and Sonarr connections you add. So, you need to map the root folder of Radarr and Sonarr to the Trailarr container in a way that Trailarr can access the media files on the paths provided by Radarr and Sonarr.
Some examples are provided below.
If you need additional help, there is a Docker Config Tool that will help you generate the docker-compose file with the correct volume mappings and path mappings.
If you are still facing issues, you can ask for help in the Discord Server.
Tip
Make sure the folder paths are correct and the Trailarr has read/write access to the folders.
Warning
If your folder paths have spaces, you need to escape them with a backslash (\\
) or enclose the path in quotes (\"
) like /tv\\ shows
or /\"tv shows\"
.
If you want to monitor the movies in Radarr, you need to map the root folder of Radarr to the Trailarr container.
For example, if you have movies in /mnt/disk1/media/movies
on your system, and Radarr has this folder mapped to /media/movies
inside the Radarr container, the volume mapping would look like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n
"},{"location":"install/volume-mapping/#sonarr","title":"Sonarr","text":"If you want to monitor the TV shows in Sonarr, you need to map the root folder of Sonarr to the Trailarr container.
For example, if you have TV shows in /mnt/disk1/media/tv
on your system, and Sonarr has this folder mapped to /media/tv
inside the Sonarr container, the volume mapping would look like this:
volumes:\n - /mnt/disk1/media/tv:/media/tv\n
"},{"location":"install/volume-mapping/#examples","title":"Examples","text":""},{"location":"install/volume-mapping/#example-1-different-local-container-folders","title":"Example 1 - Different Local & Container folders","text":"Radarr and Sonarr have different local folders mapped to different folders inside their containers.
Radarr has /mnt/disk1/movies
mapped to /media/movies
and Sonarr has /mnt/disk1/tv
mapped to /media/tv
, you can map them to Trailarr like this:
volumes:\n - /mnt/disk1/movies:/media/movies\n - /mnt/disk1/tv:/media/tv\n
"},{"location":"install/volume-mapping/#example-2-same-local-folder-parent-different-container-folders","title":"Example 2 - Same Local folder parent, Different Container folders","text":"Both Radarr and Sonarr have different local folders mapped to the different folders inside their containers.
Radarr has /mnt/disk1/media/movies
mapped to /media/movies
and Sonarr has /mnt/disk1/media/tv
mapped to /media/tv
. However both mapped local folders are in the same parent folder /mnt/disk1/media
. So, you can map the parent folder to Trailarr like this:
volumes:\n - /mnt/disk1/media:/media\n
OR, you can map the individual folders to Trailarr like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n - /mnt/disk1/media/tv:/media/tv\n
"},{"location":"install/volume-mapping/#example-3-different-local-folders-same-container-folder","title":"Example 3 - Different Local folders, Same Container folder","text":"If you have both Radarr and Sonarr with different local folders mapped to the same folder inside their containers, you can do custom mapping of local folders and set the appropriate path mapping while adding those connections!
For example, if Radarr has /mnt/disk1/media/movies
mapped to /media
and Sonarr has /mnt/disk1/media/tv
mapped to /media
, you can do custom mapping like below:
Map /mnt/disk1/media
to /media
in Trailarr like this:
volumes:\n - /mnt/disk1/media/movies:/media/movies\n - /mnt/disk1/media/tv:/media/tv\n
Set the path mapping for Radarr like:
Tip
The Path From
needs to match root folder inside Radarr (/media
), and the Path To
needs to match the folder inside Trailarr where the media is mapped (/media/movies
).
Set the path mapping for Sonarr like:
Tip
The Path From
needs to match root folder inside Sonarr (/media
), and the Path To
needs to match the folder inside Trailarr where the media is mapped (/media/tv
).
If you are using Windows, you need to modify the Windows folder path to be compatible with Linux. You can use the following format for the volume mapping:
volumes:\n /c/Users/username/Movies:/media/movies\n /c/Users/username/TV:/media/tv\n
C:\\Users\\username\\Movies
in your system to /media/movies
within the Trailarr container./media/movies
and /media/tv
paths to match the paths set in the Radarr / Sonarr container volume mappings.Network Shares
If you are using network shares, you need to mount the network share to your system as a drive and then map the local folder to the Trailarr container.
You could possibly map the network share directly to the Trailarr container, however, Trailarr won't be able to provide support for it at this time.
Now, you if you are running Radarr / Sonarr as docker containers, you can skip the next step and proceed to the Environment Variables setup.
Otherwise, you need to setup the Path Mapping for Radarr and Sonarr connections, as the media folder paths in Radarr/Sonarr will look like C:\\Users\\username\\Movies\\The Matrix (1999)
, which won't be accessible by Trailarr as it's not a valid linux path. So, we need to add a path mapping to tell Trailarr what to replace that path with.
Remember, in step 1 we mapped C:\\Users\\username\\Movies
to /media/movies
, so you need to go into Settings -> Connections
, open Radarr/Sonarr and Add Path Mapping like this:
Path From: C:\\Users\\username\\Movies\n Path To: /media/movies\n
Path From: C:\\Users\\username\\TV\n Path To: /media/tv\n
Now, Trailarr will replace C:\\Users\\username\\Movies
with /media/movies
in the media paths provided by Radarr, and C:\\Users\\username\\TV
with /media/tv
in the media paths provided by Sonarr.
Navigate to the application in your browser at http://localhost:7889/settings/connections.
Trailarr Login
When you open Trailarr in browser, it will ask you to login. Default login is:
Username: admin\nPassword: trailarr\n
Go to Settings
> Connections
and Click the Add New
button to add your Radarr and Sonarr instances.
Add your Radarr and Sonarr instances.
Set the Connection Name
to a name of your choice.
Set the Type
to either Radarr
or Sonarr
.
Set the Monitor Type
to your preference. See Monitor Types below for more information.
Tip
You can set different monitor types for each Radarr/Sonarr instance.
Add the URL
for your Radarr or Sonarr instance. Full URL of your Radarr or Sonarr instance including the port number. For example, http://192.168.0.15:6969
.
Add the API Key
from your Radarr or Sonarr instance. Get API Key
by opening Radarr/Sonarr in your browser, going to Settings > General
, then copy the API key.
If you have a setup that requires Path Mappings
to be set as described in Volume Mapping, you can add them here. See Path Mapping below for more information.
If you need additional help, there is a Docker Config Tool that will help you generate the docker-compose file with the correct volume mappings and path mappings.
Tip
You can set different path mappings for each Radarr/Sonarr instance.
Warning
Path mappings are optional and only required if you have a setup that requires them.
Click the Save
button to save the connection.
Repeat the steps for each Radarr and Sonarr instance you want to monitor.
That's it! The application will now start downloading trailers for your media library. See settings for more information on how to adjust settings.
Missing
","text":"Monitors and downloads trailers for movies/series without a trailer.
"},{"location":"setup/connections/#new","title":"New
","text":"Only Monitors and download trailers for movies/series that gets added after the change.
"},{"location":"setup/connections/#sync","title":"Sync
","text":"Monitors and downloads trailers for movie/series that are monitored in Radarr/Sonarr.
"},{"location":"setup/connections/#none","title":"None
","text":"Turns off monitoring for the connection and does not download any trailers.
Tip
If you have a huge library and don't want to download trailers for all of them, set the monitor type to None
when adding a Radarr/Sonarr Connection. Wait for an hour or so to let the app sync all media from that connection, and change it to New
to download trailers for new media. You can always manually set the monitor type for the movies/series you want to download trailers for.
In simple words, Path Mappings are used to tell Trailarr what to replace the path with when it gets a path from Radarr/Sonarr. Path From
is what it looks for in the path, and Path To
is what it replaces it with.
If you are using Windows, you might need to add path mappings in most cases, unless you are also running Radarr/Sonarr as docker containers. See Volume Mapping for more information.
Info
Path mappings are optional and only required if you have a setup that requires them. You can set different path mappings for each Radarr/Sonarr instance.
ExampleAdding a path mapping for a connection as:
Path From: C:\\Users\\username\\Movies\nPath To: /media/movies\n
will replace C:\\Users\\username\\Movies
with /media/movies
in the path received from Radarr/Sonarr. So, if Radarr/Sonarr sends a path like C:\\Users\\username\\Movies\\The MAtrix (1999)
, it will be replaced with /media/movies/The Matrix (1999)
. Click the Add Path Mapping
button.
Set the Path From
to the path inside Radarr/Sonarr connection.
Set the Path To
to the path inside the Trailarr container.
Click the Save
button to save the path mapping.
Repeat the steps for each path mapping you want to add, if needed.
Tip
Path mappings are useful when the media folder available to Radarr/Sonarr is same for multiple connections. For example, if Radarr has media folder set to /media
and Sonarr has media folder set to /media
, you can map the local folder for Radarr media to /media/movies
and Sonarr media to /media/tv
and then in add path mappings with Path From
set to /media
and Path To
set to /media/movies
for Radarr and /media/tv
for Sonarr connections.
Warning
For Path Mappings to work, you need to set the Path From
to the exact path inside Radarr/Sonarr connection and Path To
to the exact path inside the Trailarr container. If the paths do not match, the path mapping will not work. Path Mappings needs to be paired with Volume Mapping
in the docker-compose.yml
file. See Volume Mapping for more information.
There are a few settings that you can use to customize the behavior of Trailarr app. These settings can be set by opening the app in browser http://localhost:7889/settings and navigatings to Settings > Trailer
page.
true
Enable this setting to monitor trailers for connections. When enabled, the app will automatically download trailers for media in Radarr and Sonarr.
Note
Disabling this will disable monitoring of media for all connections.
"},{"location":"setup/settings/#monitor-interval","title":"Monitor Interval","text":"60
minutes. Minimum is 10
minutes`. Frequency (in minutes) to check for new media in Radarr/Sonarr.
Info
Changing this setting will require a restart of the app (container) to take effect.
"},{"location":"setup/settings/#file-settings","title":"File Settings","text":""},{"location":"setup/settings/#wait-for-media","title":"Wait For Media","text":"false
Enable this setting to wait for media to be downloaded before downloading trailers.
"},{"location":"setup/settings/#trailer-folder-movie","title":"Trailer Folder Movie","text":"false
Enable this setting to save trailers in a Trailers
folder inside the movie folder.
true
Enable this setting to save trailers in a Trailers
folder inside the series folder.
30
secondsSelect the minimum duration of the trailers to download. Trailers with a duration less than this value will be skipped. Minimum is 30
seconds.
600
secondsSelect the maximum duration of the trailers to download. Trailers with a duration greater than this value will be skipped. Minimum is Trailer Minimum Duration + 60
seconds. Maximum is 600
seconds.
Info
If you want to download trailers with a duration of 2 minutes to 5 minutes, set Trailer Minimum Duration
to 120
seconds and Trailer Maximum Duration
to 300
seconds.
1080
Select the resolution of the trailers to download. Available options are 240
, 360
, 480
, 720
, 1080
, 1440
, 2160
.
Info
If set to 1080
, the app will try to download trailers with a resolution of 1080p, if available. If not, it will fallback to the next lower resolution.
mkv
Select the file format of the trailers to download. Available options are mkv
, mp4
, webm
.
Info
App will download trailer in the available format and then convert it to the selected format using Ffmpeg.
"},{"location":"setup/settings/#trailer-video-format","title":"Trailer Video Format","text":"h264
Select the video codec of the trailers to download. Available options are h264
, h265
, vp8
, vp9
, av1
.
Info
App will download trailer in the available codec and then convert it to the selected codec using Ffmpeg.
"},{"location":"setup/settings/#trailer-audio-format","title":"Trailer Audio Format","text":"aac
Select the audio codec of the trailers to download. Available options are aac
, ac3
, eac3
, flac
, opus
.
Info
App will download trailer in the available codec and then convert it to the selected codec using Ffmpeg.
"},{"location":"setup/settings/#trailer-subtitles-enabled","title":"Trailer Subtitles Enabled","text":"true
Enable this setting to download subtitles for trailers, if available.
"},{"location":"setup/settings/#trailer-subtitles-format","title":"Trailer Subtitles Format","text":"srt
Select the format of the subtitles to download. Available options are srt
, vtt
, pgs
.
Info
App will download subtitles in the available format and then convert it to the selected format using Ffmpeg.
"},{"location":"setup/settings/#trailer-subtitles-language","title":"Trailer Subtitles Language","text":"en
Select the language of the subtitles to download. A valid ISO 639-1 language code is required. See ISO 639-1 language codes for more information.
Info
Multiple languages can be set with a comma separated list. For example, en,es,fr
.
true
Enable this setting to embed metadata in the trailers.
"},{"location":"setup/settings/#trailer-remove-sponsorblocks","title":"Trailer Remove SponsorBlocks","text":"true
Enable this setting to remove sponsor blocks from the trailers, if available. Sponsor blocks are sections of the trailer that contain promotional content like intros, outros, ads, etc.
"},{"location":"setup/settings/#trailer-web-optimized","title":"Trailer Web Optimized","text":"true
Enable this setting to optimize trailers for web streaming. This will allow trailers to start playing faster while streaming over network. Might slightly increase file size.
"},{"location":"setup/settings/#advanced-settings","title":"Advanced Settings","text":"These are advanced settings, if you don't know what they do, do not modify them!
"},{"location":"setup/settings/#log-level","title":"Log Level","text":"Info
Select the logging level for the app. Available options are Debug
, Info
, Warning
, Error
.
If you are having issues and need to troubleshoot or request help, set the log level to Debug
to get more detailed logs.
100
Set the audio volume level of the downloaded trailer. Use this option to increase or decrease audio loudness of the trailer. Set to 100
for no change. Minimum is 1
. Maximum is 200
.
Warning
Do not modify this setting unless you know what you are doing.
"},{"location":"setup/settings/#exclude-words-in-title","title":"Exclude Words in Title","text":"Enter a comma separated list of words to exclude from the title of the trailers. If the title of the trailer contains any of the words in the list, the trailer will be skipped. For example, teaser,clip,featurette
.
false
Enable this setting to always search YouTube for trailers. If disabled, the app will only search YouTube if it cannot find a trailer in Radarr, Sonarr doesn't provide youtube trailer ids.
"},{"location":"setup/settings/#youtube-search-query","title":"Youtube Search Query","text":"{title} {year} {is_movie} trailer
Enter a search query to use when searching for trailers on YouTube. Wrap a supported variable in {}
like {title}
and it will be replaced in the actual search query. Supports Python string formatting options.
Available options are:
title
: Title of the media. Eg: 'The Matrix'year
: Year of the media. Eg: '1999'is_movie
: 'movie' if the media is a movie, 'series' if the media is a series.language
: Language of the media. Eg: 'English'{title} - Trailer-trailer.{ext}
Select the file name format for the trailers. Wrap a supported variable in {}
like {title}
and it will be replaced in the actual file name. Supports Python string formatting options.
Available options are:
title
: Title of the media. Eg: 'The Matrix'year
: Year of the media. Eg: '1999'resolution
: Resolution of the trailer. Eg: '1080p'vcodec
: Video codec of the trailer. Eg: 'h264'acodec
: Audio codec of the trailer. Eg: 'aac'None
If you are having issues downloading trailers due to age restrictions, bot detection, etc., you can set the path to a file containing YouTube cookies. This will allow the app to use the cookies to bypass restrictions.
See Export YouTube Cookies.txt file for more info.
Warning
Make sure to save the cookies file in a secure location and map the volume to the container. Set the path to the file in this setting.
"},{"location":"setup/settings/#experimental-settings","title":"Experimental Settings","text":"These are experimental options, might not work as expected! You can enable them if you want to try. Please report any issues on Github
"},{"location":"setup/settings/#trailer-remove-silence","title":"Trailer Remove Silence","text":"Enable this option to let Trailarr analyse the video file and remove it. This helps remove video end credits usually added to show end credits or other video suggestions on YouTube.
Silence is detected using ffmpeg silencedetect
and if there is any silence (less than 30dB audio) for more than 3 seconds at the end of video file, video will be trimmed till the starting timestamp of the detected silence.