Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- #
- ##############################################################################
- ### NZBGET POST-PROCESSING SCRIPT ###
- # Script to rip srt/ssa subtitles out of .mkv files
- #
- # Usage: scriptname.py [filename.mkv]
- # If the filename isn't specified all .mkv files in the current directory will be processed
- # Developed with ffmpeg 2.1.1, you probably want that or higher if this doesn't work
- #
- ##############################################################################
- ### OPTIONS ###
- ### NZBGET POST-PROCESSING SCRIPT ###
- ##############################################################################
- import glob, re, argparse, os, sys
- from subprocess import call
- os.chdir(os.environ['NZBPP_DIRECTORY'])
- # Exit codes used by NZBGet
- POSTPROCESS_SUCCESS=93
- POSTPROCESS_ERROR=94
- ffmpeg = 'ffmpeg'
- parser = argparse.ArgumentParser(description='Extract subtitles from mkv files.')
- parser.add_argument('-f', '--file', help="source filename (mkv) to extract subtitle from")
- args = parser.parse_args()
- if args.file is None:
- mkvs = glob.glob("*.mkv")
- if (len(mkvs) == 0):
- print "No .mkv files in current directory"
- for i in mkvs:
- call ([ffmpeg, '-i', i, '-vn', '-an', '-map', '0:m:language:eng', re.sub(r".mkv", ".en.srt", i)])
- if os.path.exists(re.sub(r".mkv", ".en.srt", i)):
- if os.path.getsize(re.sub(r".mkv", ".en.srt", i)) < 1 * 1024:
- os.remove(re.sub(r".mkv", ".en.srt", i))
- print "Resultaat: Leeg bestand", (re.sub(r".mkv", ".en.srt", i)), "verwijderd, backup proces uitvoeren"
- call ([ffmpeg, '-i', i, '-vn', '-an', '-map', '0:s:0', re.sub(r".mkv", ".en.srt", i)])
- if os.path.exists(re.sub(r".mkv", ".en.srt", i)):
- if os.path.getsize(re.sub(r".mkv", ".en.srt", i)) < 1 * 1024:
- os.remove(re.sub(r".mkv", ".en.srt", i))
- print "Resultaat: Leeg bestand backup proces", (re.sub(r".mkv", ".en.srt", i)), "verwijderd"
- print "Resultaat: Ondertitel 1 naar", (re.sub(r".mkv", ".en.srt", i)), "gekopieerd, language tag kan fout zijn"
- call ([ffmpeg, '-i', i, '-vn', '-an', '-map', '0:s:1', re.sub(r".mkv", ".de.srt", i)])
- if os.path.exists(re.sub(r".mkv", ".de.srt", i)):
- if os.path.getsize(re.sub(r".mkv", ".de.srt", i)) < 1 * 1024:
- os.remove(re.sub(r".mkv", ".de.srt", i))
- print "Resultaat: Leeg bestand backup proces", (re.sub(r".mkv", ".de.srt", i)), "verwijderd"
- print "Resultaat: Ondertitel 2 naar", (re.sub(r".mkv", ".de.srt", i)), "gekopieerd, language tag kan fout zijn"
- elif os.path.getsize(re.sub(r".mkv", ".en.srt", i)) > 1 * 1024:
- print "Resultaat: Engelse ondertitel naar", (re.sub(r".mkv", ".en.srt", i)), "gekopieerd"
- call ([ffmpeg, '-i', i, '-vn', '-an', '-map', '0:m:language:dut', re.sub(r".mkv", ".nl.srt", i)])
- if os.path.exists(re.sub(r".mkv", ".nl.srt", i)):
- if os.path.getsize(re.sub(r".mkv", ".nl.srt", i)) < 1 * 1024:
- os.remove(re.sub(r".mkv", ".nl.srt", i))
- print "Resultaat: Leeg bestand", (re.sub(r".mkv", ".nl.srt", i)), "verwijderd"
- print "Resultaat: Nederlandse ondertitel naar", (re.sub(r".mkv", ".nl.srt", i)), "gekopieerd"
- else:
- call(process(args.file))
- sys.exit(POSTPROCESS_SUCCESS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement