Subify - Download subtitles for your favorite TV shows and movies
Subify is a tool to download subtitles for your favorite TV shows and movies. It is directly able to open the video with your default player, once the subtitle is downloaded.
Subify combines SubDB Web API, OpenSubtitles API and Addic7ed to get the best subtitles for your video. It also considers that you use a default player interpreting srt subtitles when the video file name is the same than the srt file (ex: VLC).
Subify gets the best match from several APIs in this order. This default behavior can easily be changed. See the documentation below
Download the latest version of Subify, and that's it. No need to install something else. Works on Linux, Mac OS (Darwin) and Windows
If you use Golang, you can get Subify and its binary directly with :
go get -u github.com/matcornic/subify
In MacOS, you can use the power of Service Automator to add Subify options in the Finder contextual menu for your videos.
bin/bash
# Change "/projects/go/bin/subify" by the path of your downloaded binary
# Use the commaned you want. Commands are explained below
/projects/go/bin/subify dl "$1" -o
In Windows, you can use Shortcuts do to approximately the same.
shell:sendto
(this will navigate to the folder with the "Send to" context menu shortcuts)C:\Windows\System32\cmd.exe /k "C:\tools\subify.exe dl -o"
(Change the subify command if needed)And you're done! Just right mouse click on an video and Send to > Subtitle and open. It will find the subtitle and open the video.
Issues:
You need to open cmd.exe and run it from there.
warning. This makes sense if there is no file parameter, but the Send to functionality in explorer automatically adds this./k
to /c
, but then you will never know when an error occurs.Thanks @AndreasFurster for finding this tip.
Note : the binary is usable as is. If you want to run the command from anywhere on your OS, make sure to add Subify home installation to your PATH environment variable
# Download subtitle with default language (English) from default APIs (SubDB, then OpenSubtitles, then Addic7ed)
subify dl <path_to_your_video>
# Download subtitle with default language (English), from default APIs (SubDB, then OpenSubtitles, then Addic7ed), then open video with your default player
subify dl <path_to_your_video> -o
# Download subtitle with french language, from default APIs (SubDB, then OpenSubtitles, then Addic7ed), and open with your default player
subify dl <path_to_your_video> -o -l fr
# Download subtitle with french language, if not found spanish, if not found english, from default APIs (SubDB, then OpenSubtitles, then Addic7ed)
subify dl <path_to_your_video> -l fr,es,en
# Download subtitle with default language, by searching first in OpenSubtitles, then in SubDB
subify dl <path_to_your_video> -a os,subdb
# Download subtitle with default language, by searching only in OpenSubtitles
subify dl <path_to_your_video> -a OpenSubtitles
Tool to handle subtitles for your best TV Shows and movies
http://github.com/matcornic/subify
Usage:
subify [command]
Available Commands:
dl Download the subtitles for your video - 'subify dl --help'
help Help about any command
list List information about something
version Get version of Subify
Flags:
--config string Config file (default is $HOME/.subify.yaml|json|toml). Edit to change default behavior
--dev Instantiate development sandbox instead of production variables
-h, --help help for subify
-v, --verbose Print more information while executing
Use "subify [command] --help" for more information about a command.
Download the subtitles for your video (movie or TV Shows)
Give the path of your video as first parameter and let's go !
Usage:
subify dl <video-path> [flags]
Aliases:
dl, download
Flags:
-a, --apis string Overwrite default searching APIs behavior, hence the subtitles are downloaded. Available APIs at 'subify list apis' (default "SubDB,OpenSubtitles,Addic7ed")
-h, --help help for dl
-l, --languages string Languages of the subtitle separate by a comma (First to match is downloaded). Available languages at 'subify list languages' (default "en")
-n, --notify Display desktop notification (default true)
-o, --open Once the subtitle is downloaded, open the video with your default video player (OSX: "open", Windows: "start", Linux/Other: "xdg-open")
Global Flags:
--config string Config file (default is $HOME/.subify.yaml|json|toml). Edit to change default behavior
--dev Instantiate development sandbox instead of production variables
-v, --verbose Print more information while executing
List available languages
Usage:
subify list languages [flags]
Aliases:
languages, lang
Global Flags:
--all Shows all languages
--config string Config file (default is $HOME/.subify.|json|yaml|toml). Edit to change default behaviour
--dev Instanciate development sandbox instead of production variables
-v, --verbose Print more information while executing
List the available apis used by Subify
Usage:
subify list apis [flags]
Global Flags:
--config string Config file (default is $HOME/.subify.|json|yaml|toml). Edit to change default behaviour
--dev Instanciate development sandbox instead of production variables
-v, --verbose Print more information while executing
Binaries for common Operating Systems and architectures are available in Release page. But if you need to compile Subify from source, you can do it as well.
git clone https://github.com/matcornic/subify.git
(for HTTPS) or [email protected]:matcornic/subify.git
(for SSH), or https://github.com/matcornic/subify/archive/master.zip
(for the Zip archive)go get
go build
./subify --help
to test if binary is working (you may have to add execution rights on generated file to launch it, for example chmod u+x ./subify
for Linux)Default configuration can be overridden. Instead of passing the same parameters again and again to the command, you can write a JSON/YAML/TOML
in your home folder ($HOME/.subify.|json|yaml|toml
). Here is an example with a .subify.toml
file :
# Root is for all commands
[root]
verbose = false # Turn on to print more information by default
dev = false # Don't turn on, just for development purpose
# download for the download/dl command
[download]
languages = "en" # Searching for theses languages. Can be a list like : "fr,es,en"
apis = "SubDB,OpenSubtitles,Addic7ed" # Searching from these sites
notify = false
--notify=false
Subify is released under the Apache 2.0 license. See LICENSE.txt