Package: dopplerr
Dopplerr Subtitle DownloaderSubtitle Download Web Service for Sonarr or Radarr. It usesSubliminalto search
automatically for missing subtitles on download notification.Free software: MITSource:https://github.com/Stibbons/dopplerrPython 3.Docker image based on Alpine Linux and S6-Overlay (based onLinuxserver’s images)Limitationsonly Sonarr Download notificationvideo filename should not have been renamed (which helps finding the
right subtitle)all series should be on the same root directoryseries folder should be asSeries Name (1900)Support and Feature RequestsDo NOT open issue for feature requests, please vote onFeatHub.For support, please use ourDiscord.UsageThe best usage is through the docker image.Installation with DockerUse my docker image:docker create \
    --name dopplerr \
    -p 8086:8086 \
    -e PUID=<UID> \
    -e PGID=<GID> \
    -e TZ=<timezone> \
    -v /etc/localtime:/etc/localtime:ro \
    -v <path/to/animes>:/animes \
    -v <path/to/movies>:/movies \
    -v <path/to/series>:/tv \
    -e DOPPLERR_SUBLIMINAL_LANGUAGES="fra,eng" \
    -e DOPPLERR_MAPPING="tv=tv,movies=movies,animes=animes" \
    stibbons31/dopplerrMount your media directories in/. Typically,/animesand/tvare from Sonarr, and/moviesfrom Radarr.It is a good practice to run Sonarr and Radarr in their own container,
so they also “see” their media in path such as/tv,/movies,/animes. Mount these volume with the same name in thedopplerrcontainer.DOPPLERR_MAPPINGis used to list all interesting folders in media
base directory (which is/by default ifDOPPLERR_GENERAL_BASEDIRis not set), so please define it even if
all directory mappings are trivial:tv=tv,movies=movies,animes=animes.DOPPLERR_MAPPINGcan allows developers to run dopplerr directly from
their PC and allow a different naming conventions (for instance,/path/to/Moviesis where the movies are stored, but in all
containers (Radarr, Dopplerr) they are mounted as/movies).ParametersThe parameters are split into two halves, separated by a colon, the left
hand side representing the host and the right the container side. For
example with a port -p external:internal - what this shows is the port
mapping from internal to external of the container. So,-p8080:80would expose port 80 from inside the container to be accessible from the
host’s IP on port 8080 (Ex:http://192.168.x.x:8080).Example of starting command line arguments:-p8086:8086- the port webinterface-v/path/to/anime:/anime- location of Anime library on disk-v/path/to/movies:/movies- location of Movies library on disk-v/path/to/series:/tv- location of TV library on disk-ePGID=1000- for GroupID. See below for explanation-ePUID=100- for UserID. See below for explanation-v/etc/localtime- for timezone information - see Localtime for
important information-eTZ- for timezone information, Europe/London - see Localtime
for important information-eDOPPLERR_SUBLIMINAL_LANGUAGES=fra,eng- set wanted subtitles
languages (mandatory)-eDOPPLERR_GENERAL_VERBOSE=1- set verbosity. 1=verbose,
0=silent (optional)Developers might also use:-eDOPPLERR_GENERAL_BASEDIR=/media- set media base directory
(optional) (needs something like-v/path/to/anime:/media/animeand so on)LocaltimeIt is important that you either set-v/etc/localtime:/etc/localtime:roor the TZ variable to enable
scheduled tasks.Example:-e TZ=Europe/ParisUser / Group IdentifiersSometimes when using data volumes (-v flags) permissions issues can
arise between the host OS and the container. We avoid this issue by
allowing you to specify the user PUID and group PGID. Ensure the data
volume directory on the host is owned by the same user you specify and
it will “just work” (TM).In this instance PUID=1001 and PGID=1001. To find yours use id user as
below:$ id <dockeruser>
uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)Wanted subtitle languagesUse a comma-separated list of 3-letter language descriptors you want
Subliminal to try to download them.Example:DOPPLERR_SUBLIMINAL_LANGUAGES=fra,engDescriptors are ISO-639-3 names of the language. See theofficial
Babelfish
tableto find your prefered languages.Pipy InstallationCreate a dedicated virtual environment and install it properly with the
following commands:$ pip3 install dopplerrNote:One should NEVER install a Python application directly in your
system usingsudo pip3 install .... You do not want to mess your
startup scripts or any other python application that came well packaged
by the maintainers of your distribution.Always use a Virtualenv. To install an application system-wide, use your
distribution’s packet manager (apt/yum/ …).If you do not have this option, install a Python package user-wide
(pip3 install--user).Other Note: while usingpip/pip3to install from pre-built
packages (“distribution packages”) from Pypi is the official method,
please note this project usespipenvfor development, and uses aPipfileas primary source of dependencies definition.requirements.txtfile is automatically generated on change so
installing throughpip3from the GitHub source should work even if
it not the official installation method:pip3 install --user git+http://github.com/Stibbons/dopplerr#egg=dopplerrBe aware with this command you retrieve the latest code, which may be
broken.Radarr/Sonarr ConfigurationGo in Settings to configure a “Connect” WebHook:Settings > Connect > add WebHook notificationSelectOn DownloadandOn UpgradeURL:http://<ipaddress>:8086/api/v1/notify/sonarrorURL:http://<ipaddress>:8086/api/v1/notify/radarrMethod: POSTTwo READMEs ?There is a little trick to know about READMEs:Docker Hub does not render README written in restructuredText
correctlyPypi does not render README written in Markdown correctlySo, a restructuredText version of the README is created fromREADME.mdon upload to Pypi. Simple. So, when updatingREADME.md, do not forget to regenerateREADME.rstusingmake readme.ContributingCheck out the source codegit cloneInstall requirement system-level dependencies with (or adapt
accordingly):$ sudo ./bootstrap-system.shSystem dependencies:gitmakepandocpippipenvThis project usespipenvto jump seamlessly into a virtualenv.Setup your development environment with:$ make devUnit Tests with:$ make test-unitor run it live with$ make run-localActivate the environment (to start your editor from, for example):$ make shellPublishing new versionPlease note that much part is automatized, for example the publication
to Pypi is done automatically by Travis on successful tag build)Test building Wheel package with:$ make release wheelsCreate a release: create a tag with a Semver syntax.$ # ensure everything is committed
$ git tag 1.2.3
$ make release
$ git push --tagsOptionally you can tag code locally and push to GitHub.make releaseis also executed during the Travis build, so if there is any files
changed during the build (ex:README.rst), it will be automatically
done and so the Pypi package will be coherent. Do not retag if the
README has been updated on GitHub, it has been properly done in the
Wheel/Source Packages on Pypi. So, no stress.On successful travis build on the Tag, your Pypi package will be
automatically updated.Same, on Tag, a Docker tag is also automatically created.Note:According to PBR, alpha versions are to be notedx.y.z.a1