def ultimate(page_url, seasonnum, epnum): global url1, url2, filen, player_revision, title, media_id, lang1, lang2, hardcoded, forceusa, page_url2 print ''' -------------------------- ---- Start New Export ---- -------------------------- CrunchyRoll Downloader Toolkit DX v0.98 Crunchyroll hasn't changed anything. If you don't have a premium account, go and sign up for one now. It's well worthit, and supports the animators. ---------- Booting up... ''' if page_url == '': page_url = raw_input('Please enter Crunchyroll video URL:\n') try: int(page_url) page_url = 'http://www.crunchyroll.com/media-' + page_url except ValueError: if not page_url.startswith('http://') and not page_url.startswith('https://'): page_url = 'http://' + page_url try: int(page_url[-6:]) except ValueError: if bool(seasonnum) and bool(epnum): page_url = altfuncs.vidurl(page_url, seasonnum, epnum) elif bool(epnum): page_url = altfuncs.vidurl(page_url, 1, epnum) else: page_url = altfuncs.vidurl(page_url, False, False) subprocess.call('title ' + page_url.replace('http://www.crunchyroll.com/', ''), shell=True) # ---------- #lang1, lang2 = altfuncs.config() #lang1, lang2, forcesub = altfuncs.config() lang1, lang2, forcesub, forceusa, localizecookies, vquality, onlymainsub = altfuncs.config() player_revision = altfuncs.playerrev(page_url) html = altfuncs.gethtml(page_url) h = HTMLParser.HTMLParser() title = re.findall('<title>(.+?)</title>', html)[0].replace('Crunchyroll - Watch ', '') if len(os.getcwd()+'\\export\\'+title+'.flv') > 255: title = re.findall('^(.+?) \- ', title)[0] # title = h.unescape(unidecode(title)).replace('/', ' - ').replace(':', '-'). # replace('?', '.').replace('"', "''").replace('|', '-').replace('"',"''").strip() ### Taken from http://stackoverflow.com/questions/6116978/python-replace-multiple-strings ### rep = {' / ': ' - ', '/': ' - ', ':': '-', '?': '.', '"': "''", '|': '-', '"': "''", 'a*G':'a G', '*': '#', u'\u2026': '...'} rep = dict((re.escape(k), v) for k, v in rep.iteritems()) pattern = re.compile("|".join(rep.keys())) title = unidecode(pattern.sub(lambda m: rep[re.escape(m.group(0))], title)) ### End stolen code ### subprocess.call('title ' + title.replace('&', '^&'), shell=True) # ---------- media_id = page_url[-6:] xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoPlayer_GetStandardConfig', media_id), 'xml') try: if '4' in xmlconfig.find_all('code')[0]: print xmlconfig.find_all('msg')[0].text sys.exit() except IndexError: pass vid_id = xmlconfig.find('media_id').string # ---------- try: host = xmlconfig.find('host').string except AttributeError: print 'Downloading 2 minute preview.' media_id = xmlconfig.find('media_id').string xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoEncode_GetStreamInfo', media_id), 'xml') host = xmlconfig.find('host').string if re.search('fplive\.net', host): url1 = re.findall('.+/c[0-9]+', host).pop() url2 = re.findall('c[0-9]+\?.+', host).pop() else: url1 = re.findall('.+/ondemand/', host).pop() url2 = re.findall('ondemand/.+', host).pop() filen = xmlconfig.find('file').string # ---------- if 'subs' in sys.argv: subtitles(title) subs_only = True hardcoded = True # bleh else: page_url2 = page_url video() #heightp = subprocess.Popen('"video-engine\MediaInfo.exe" --inform=Video;%Height% ".\export\\' + title + '.flv"' ,shell=True , stdout=subprocess.PIPE).stdout.read() heightp = {'71' : 'android', '60' : '360p', '61' : '480p', '62' : '720p', '80' : '1080p', '0' : 'highest'}[xmlconfig.find('video_encode_quality').string] subtitles(title) subtitlefilecode='' #shutil.move(title + '.flv', os.path.join(os.getcwd(), 'export', '')) print 'Starting mkv merge' if hardcoded: subprocess.call('"video-engine\mkvmerge.exe" -o ".\export\\' + title + '[' + heightp.strip() +'p].mkv" --language 1:jpn -a 1 -d 0 ' + '".\export\\' + title + '.flv"' +' --title "' + title +'"') else: sublang = {u'Español (Espana)': 'spa_spa', u'Français (France)': 'fre', u'Português (Brasil)': 'por', u'English': 'eng', u'Español': 'spa', u'Türkçe': 'tur', u'Italiano': 'ita', u'العربية': 'ara', u'Deutsch': 'deu'}[lang] # defaulttrack = False #print lang.encode('utf-8') #print sub_id5 #print sub_id6 for i in sub_id2: defaultsub='' sublangc=sub_id5.pop(0) sublangn=sub_id6.pop(0) # print forcesub if not forcesub: if sublangc == sublang: defaultsub=' --default-track 0:yes --forced-track 0:no' else: defaultsub=' --default-track 0:no --forced-track 0:no' else: if sublangc == sublang: defaultsub=' --default-track 0:yes --forced-track 0:yes' else: defaultsub=' --default-track 0:no --forced-track 0:no' if not onlymainsub: subtitlefilecode=subtitlefilecode+' --language 0:' + sublangc.replace('spa_spa','spa') + defaultsub +' --track-name 0:"' + sublangn + '" -s 0 ".\export\\'+title+'['+sublangc+']'+sublangn+'.ass"' else: if sublangc == sublang: subtitlefilecode=subtitlefilecode+' --language 0:' + sublangc.replace('spa_spa','spa') + defaultsub +' --track-name 0:"' + sublangn + '" -s 0 ".\export\\'+title+'['+sublangc+']'+sublangn+'.ass"' # subprocess.call('"video-engine\mkvmerge.exe" -o ".\export\\' + title + '.mkv" --language 1:jpn -a 1 -d 0 ' + # '".\export\\' + title + '.flv" --language 0:' + sublang + ' -s 0 ".\export\\'+title+'.ass"') # print '"video-engine\mkvmerge.exe" -o ".\export\\' + title + '.mkv" --language 0:jpn --language 1:jpn -a 1 -d 0 ' + '".\export\\' + title + '.flv"' + subtitlefilecode +' --title "' + title +'"' mkvcmd='"video-engine\mkvmerge.exe" -o ".\export\\' + title + '[' + heightp.strip() +'].mkv" --language 0:jpn --language 1:jpn -a 1 -d 0 ' + '".\export\\' + title + '.flv"' + subtitlefilecode +' --title "' + title +'"' # print mkvcmd #print subtitlefilecode subprocess.call(mkvcmd) print 'Merge process complete' subs_only = False print print '----------' print print 'Starting Final Cleanup' if not subs_only: os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.flv') if not hardcoded or not subs_only: #os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.ass') for root, dirs, files in os.walk('export'): for file in filter(lambda x: re.match(title +'\[.+\]'+ '.ass', x), files): os.remove(os.path.join(root, file)) print 'Cleanup Complete'
def ultimate(page_url, seasonnum, epnum): global url1, url2, filen, title, media_id, lang1, lang2, hardcoded, forceusa, page_url2 #global player_revision print ''' -------------------------- ---- Start New Export ---- -------------------------- CrunchyRoll Downloader Toolkit DX v0.98 Crunchyroll hasn't changed anything. If you don't have a premium account, go and sign up for one now. It's well worthit, and supports the animators. ---------- Booting up... ''' if page_url == '': page_url = raw_input('Please enter Crunchyroll video URL:\n') try: int(page_url) page_url = 'http://www.crunchyroll.com/media-' + page_url except ValueError: if not page_url.startswith('http://') and not page_url.startswith( 'https://'): page_url = 'http://' + page_url try: int(page_url[-6:]) except ValueError: if bool(seasonnum) and bool(epnum): page_url = altfuncs.vidurl(page_url, seasonnum, epnum) elif bool(epnum): page_url = altfuncs.vidurl(page_url, 1, epnum) else: page_url = altfuncs.vidurl(page_url, False, False) #subprocess.call('title ' + page_url.replace('http://www.crunchyroll.com/', ''), shell=True) # ---------- #lang1, lang2 = altfuncs.config() #lang1, lang2, forcesub = altfuncs.config() lang1, lang2, forcesub, forceusa, localizecookies, vquality, onlymainsub = altfuncs.config( ) #player_revision = altfuncs.playerrev(page_url) html = altfuncs.gethtml(page_url) #h = HTMLParser.HTMLParser() title = re.findall('<title>(.+?)</title>', html)[0].replace('Crunchyroll - Watch ', '') if len(os.path.join('export', title + '.flv')) > 255: title = re.findall('^(.+?) \- ', title)[0] # title = h.unescape(unidecode(title)).replace('/', ' - ').replace(':', '-'). # replace('?', '.').replace('"', "''").replace('|', '-').replace('"',"''").strip() ### Taken from http://stackoverflow.com/questions/6116978/python-replace-multiple-strings ### rep = { ' / ': ' - ', '/': ' - ', ':': '-', '?': '.', '"': "''", '|': '-', '"': "''", 'a*G': 'a G', '*': '#', u'\u2026': '...' } rep = dict((re.escape(k), v) for k, v in rep.iteritems()) pattern = re.compile("|".join(rep.keys())) title = unidecode(pattern.sub(lambda m: rep[re.escape(m.group(0))], title)) ### End stolen code ### #subprocess.call('title ' + title.replace('&', '^&'), shell=True) # ---------- media_id = page_url[-6:] xmlconfig = BeautifulSoup( altfuncs.getxml('RpcApiVideoPlayer_GetStandardConfig', media_id), 'xml') try: if '4' in xmlconfig.find_all('code')[0]: print xmlconfig.find_all('msg')[0].text sys.exit() except IndexError: pass vid_id = xmlconfig.find('media_id').string # ---------- host = xmlconfig.find('host') if host: host = host.string filen = xmlconfig.find('file') if filen: filen = filen.string if not host and not filen: print 'Downloading 2 minute preview.' media_id = xmlconfig.find('media_id').string xmlconfig = BeautifulSoup( altfuncs.getxml('RpcApiVideoEncode_GetStreamInfo', media_id), 'xml') host = xmlconfig.find('host').string # ---------- if 'subs' in sys.argv: subtitles(title) subs_only = True hardcoded = True # bleh else: page_url2 = page_url if host: if re.search('fplive\.net', host): url1 = re.findall('.+/c[0-9]+', host).pop() url2 = re.findall('c[0-9]+\?.+', host).pop() else: url1 = re.findall('.+/ondemand/', host).pop() url2 = re.findall('ondemand/.+', host).pop() video() video_input = os.path.join("export", title + '.flv') else: video_input = os.path.join("export", title + '.ts') video_hls(filen, video_input) heightp = '360p' if xmlconfig.height.string == '368' else '{0}p'.format( xmlconfig.height.string) # This is less likely to fail subtitles(title) print 'Starting mkv merge' mkvmerge = os.path.join("video-engine", "mkvmerge.exe") filename_output = os.path.join("export", title + '[' + heightp.strip() + '].mkv') subtitle_input = [] if os.path.isfile(mkvmerge): with_wine = os.name != 'nt' else: mkvmerge = "mkvmerge" with_wine = False cmd = [ mkvmerge, "-o", filename_output, '--language', '0:jpn', '--language', '1:jpn', '-a', '1', '-d', '0', video_input, '--title', title ] if with_wine: cmd.insert(0, 'wine') if not hardcoded: sublang = { u'Español (Espana)': 'spa_spa', u'Français (France)': 'fre', u'Português (Brasil)': 'por', u'English': 'eng', u'Español': 'spa', u'Türkçe': 'tur', u'Italiano': 'ita', u'العربية': 'ara', u'Deutsch': 'deu' }[lang] for i in sub_id2: sublangc = sub_id5.pop(0) sublangn = sub_id6.pop(0) if onlymainsub and sublangc != sublang: continue filename_subtitle = os.path.join( "export", title + '[' + sublangc + ']' + sublangn + '.ass') if not os.path.isfile(filename_subtitle): continue cmd.extend( ['--language', '0:' + sublangc.replace('spa_spa', 'spa')]) if sublangc == sublang: cmd.extend(['--default-track', '0:yes']) else: cmd.extend(['--default-track', '0:no']) if forcesub: cmd.extend(['--forced-track', '0:yes']) else: cmd.extend(['--forced-track', '0:no']) cmd.extend(['--track-name', '0:' + sublangn]) cmd.extend(['-s', '0']) cmd.append(filename_subtitle) subtitle_input.append(filename_subtitle) subprocess.call(cmd) print 'Merge process complete' subs_only = False print print '----------' print print 'Starting Final Cleanup' if not subs_only: os.remove(video_input) if not hardcoded or not subs_only: #os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.ass') for f in subtitle_input: os.remove(f) print 'Cleanup Complete'
def ultimate(page_url, seasonnum, epnum): global url1, url2, filen, title, media_id, lang1, lang2, hardcoded, forceusa, page_url2, onlymainsub #global player_revision print ''' -------------------------- ---- Start New Export ---- -------------------------- CrunchyRoll Downloader Toolkit DX v0.98 Crunchyroll hasn't changed anything. If you don't have a premium account, go and sign up for one now. It's well worthit, and supports the animators. ---------- Booting up... ''' if page_url == '': page_url = raw_input('Please enter Crunchyroll video URL:\n') try: int(page_url) page_url = 'http://www.crunchyroll.com/media-' + page_url except ValueError: if not page_url.startswith('http://') and not page_url.startswith('https://'): page_url = 'http://' + page_url try: int(page_url[-6:]) except ValueError: if bool(seasonnum) and bool(epnum): page_url = altfuncs.vidurl(page_url, seasonnum, epnum) elif bool(epnum): page_url = altfuncs.vidurl(page_url, 1, epnum) else: page_url = altfuncs.vidurl(page_url, False, False) #subprocess.call('title ' + page_url.replace('http://www.crunchyroll.com/', ''), shell=True) # ---------- #lang1, lang2 = altfuncs.config() #lang1, lang2, forcesub = altfuncs.config() lang1, lang2, forcesub, forceusa, localizecookies, vquality, onlymainsub = altfuncs.config() #player_revision = altfuncs.playerrev(page_url) html = altfuncs.gethtml(page_url) #h = HTMLParser.HTMLParser() title = re.findall('<title>(.+?)</title>', html)[0].replace('Crunchyroll - Watch ', '') if len(os.path.join('export', title+'.flv')) > 255: title = re.findall('^(.+?) \- ', title)[0] # title = h.unescape(unidecode(title)).replace('/', ' - ').replace(':', '-'). # replace('?', '.').replace('"', "''").replace('|', '-').replace('"',"''").strip() ### Taken from http://stackoverflow.com/questions/6116978/python-replace-multiple-strings ### rep = {' / ': ' - ', '/': ' - ', ':': '-', '?': '.', '"': "''", '|': '-', '"': "''", 'a*G':'a G', '*': '#', u'\u2026': '...'} rep = dict((re.escape(k), v) for k, v in rep.iteritems()) pattern = re.compile("|".join(rep.keys())) title = unidecode(pattern.sub(lambda m: rep[re.escape(m.group(0))], title)) ### End stolen code ### #subprocess.call('title ' + title.replace('&', '^&'), shell=True) # ---------- media_id = page_url[-6:] xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoPlayer_GetStandardConfig', media_id), 'xml') try: if '4' in xmlconfig.find_all('code')[0]: print xmlconfig.find_all('msg')[0].text sys.exit() except IndexError: pass # ---------- host = xmlconfig.host and xmlconfig.host.string filen = xmlconfig.file and xmlconfig.file.string if not (host or filen): print 'Downloading 2 minute preview.' media_id = xmlconfig.media_id.string xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoEncode_GetStreamInfo', media_id), 'xml') host = xmlconfig.host.string filen = xmlconfig.file.string # ---------- if 'subs' in sys.argv: subtitles(title) subs_only = True hardcoded = True # bleh else: page_url2 = page_url if host: if re.search('fplive\.net', host): url1 = re.findall('.+/c[0-9]+', host).pop() url2 = re.findall('c[0-9]+\?.+', host).pop() else: url1 = re.findall('.+/ondemand/', host).pop() url2 = re.findall('ondemand/.+', host).pop() video() video_input = os.path.join("export", title + '.flv') else: video_input = os.path.join("export", title + '.ts') video_hls(filen, video_input) heightp = '360p' if xmlconfig.height.string == '368' else '{0}p'.format(xmlconfig.height.string) # This is less likely to fail subtitles(title) print 'Starting mkv merge' mkvmerge = os.path.join("video-engine", "mkvmerge.exe") filename_output = os.path.join("export", title + '[' + heightp.strip() +'].mkv') subtitle_input = [] if os.path.isfile(mkvmerge): with_wine = os.name != 'nt' else: mkvmerge = "mkvmerge" with_wine = False cmd = [mkvmerge, "-o", filename_output, '--language', '0:jpn', '--language', '1:jpn', '-a', '1', '-d', '0', video_input, '--title', title] if with_wine: cmd.insert(0, 'wine') if not hardcoded: sublang = {u'Español (Espana)': 'spa_spa', u'Français (France)': 'fre', u'Português (Brasil)': 'por', u'English': 'eng', u'Español': 'spa', u'Türkçe': 'tur', u'Italiano': 'ita', u'العربية': 'ara', u'Deutsch': 'deu'}[lang] for i in sub_id2: sublangc=sub_id5.pop(0) sublangn=sub_id6.pop(0) if onlymainsub and sublangc != sublang: continue filename_subtitle = os.path.join("export", title+'['+sublangc+']'+sublangn+'.ass') if not os.path.isfile(filename_subtitle): continue cmd.extend(['--language', '0:' + sublangc.replace('spa_spa','spa')]) if sublangc == sublang: cmd.extend(['--default-track', '0:yes']) else: cmd.extend(['--default-track', '0:no']) if forcesub: cmd.extend(['--forced-track', '0:yes']) else: cmd.extend(['--forced-track', '0:no']) cmd.extend(['--track-name', '0:' + sublangn]) cmd.extend(['-s', '0']) cmd.append(filename_subtitle) subtitle_input.append(filename_subtitle) subprocess.call(cmd) print 'Merge process complete' subs_only = False print print '----------' print print 'Starting Final Cleanup' if not subs_only: os.remove(video_input) if not hardcoded or not subs_only: #os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.ass') for f in subtitle_input: os.remove(f) print 'Cleanup Complete'
pass # ---------- try: int(page_url) page_url = 'http://www.crunchyroll.com/media-' + page_url except ValueError: if not page_url.startswith('http://') and not page_url.startswith('https://'): page_url = 'http://' + page_url try: int(page_url[-6:]) except ValueError: if bool(seasonnum) and bool(epnum): page_url = altfuncs.vidurl(page_url, seasonnum, epnum) elif bool(epnum): page_url = altfuncs.vidurl(page_url, 1, epnum) else: page_url = altfuncs.vidurl(page_url, False, False) subprocess.call('title ' + page_url.replace('http://www.crunchyroll.com/', ''), shell=True) # ---------- lang1, lang2 = altfuncs.config() player_revision = altfuncs.playerrev(page_url) html = altfuncs.gethtml(page_url) h = HTMLParser.HTMLParser() title = re.findall('<title>(.+?)</title>', html)[0].replace('Crunchyroll - Watch ', '')
def ultimate(page_url, seasonnum, epnum): global url1, url2, filen, title, media_id, lang1, lang2, hardcoded, forceusa, page_url2 #global player_revision print ''' -------------------------- ---- Start New Export ---- -------------------------- CrunchyRoll Downloader Toolkit DX v0.98 Crunchyroll hasn't changed anything. If you don't have a premium account, go and sign up for one now. It's well worthit, and supports the animators. ---------- Booting up... ''' if page_url == '': page_url = raw_input('Please enter Crunchyroll video URL:\n') try: int(page_url) page_url = 'http://www.crunchyroll.com/media-' + page_url except ValueError: if not page_url.startswith('http://') and not page_url.startswith('https://'): page_url = 'http://' + page_url try: int(page_url[-6:]) except ValueError: if bool(seasonnum) and bool(epnum): page_url = altfuncs.vidurl(page_url, seasonnum, epnum) elif bool(epnum): page_url = altfuncs.vidurl(page_url, 1, epnum) else: page_url = altfuncs.vidurl(page_url, False, False) subprocess.call('title ' + page_url.replace('http://www.crunchyroll.com/', ''), shell=True) # ---------- #lang1, lang2 = altfuncs.config() #lang1, lang2, forcesub = altfuncs.config() lang1, lang2, forcesub, forceusa, localizecookies, vquality, onlymainsub = altfuncs.config() #player_revision = altfuncs.playerrev(page_url) html = altfuncs.gethtml(page_url) h = HTMLParser.HTMLParser() title = re.findall('<title>(.+?)</title>', html)[0].replace('Crunchyroll - Watch ', '') if len(os.getcwd()+'./export/'+title+'.flv') > 255: title = re.findall('^(.+?) \- ', title)[0] # title = h.unescape(unidecode(title)).replace('/', ' - ').replace(':', '-'). # replace('?', '.').replace('"', "''").replace('|', '-').replace('"',"''").strip() ### Taken from http://stackoverflow.com/questions/6116978/python-replace-multiple-strings ### rep = {' / ': ' - ', '/': ' - ', ':': '-', '?': '.', '"': "''", '|': '-', '"': "''", 'a*G':'a G', '*': '#', u'\u2026': '...'} rep = dict((re.escape(k), v) for k, v in rep.iteritems()) pattern = re.compile("|".join(rep.keys())) title = unidecode(pattern.sub(lambda m: rep[re.escape(m.group(0))], title)) ### End stolen code ### subprocess.call('title ' + title.replace('&', '^&'), shell=True) # ---------- media_id = page_url[-6:] xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoPlayer_GetStandardConfig', media_id), 'xml') try: if '4' in xmlconfig.find_all('code')[0]: print xmlconfig.find_all('msg')[0].text sys.exit() except IndexError: pass vid_id = xmlconfig.find('media_id').string # ---------- try: host = xmlconfig.find('host').string except AttributeError: print 'Downloading 2 minute preview.' media_id = xmlconfig.find('media_id').string xmlconfig = BeautifulSoup(altfuncs.getxml('RpcApiVideoEncode_GetStreamInfo', media_id), 'xml') host = xmlconfig.find('host').string if re.search('fplive\.net', host): url1 = re.findall('.+/c[0-9]+', host).pop() url2 = re.findall('c[0-9]+\?.+', host).pop() else: url1 = re.findall('.+/ondemand/', host).pop() url2 = re.findall('ondemand/.+', host).pop() filen = xmlconfig.find('file').string # ---------- if 'subs' in sys.argv: subtitles(title) subs_only = True hardcoded = True # bleh else: page_url2 = page_url video() #heightp = subprocess.Popen('"video-engine\MediaInfo.exe" --inform=Video;%Height% "./export/' + title + '.flv"' ,shell=True , stdout=subprocess.PIPE).stdout.read() heightp = {'71' : 'android', '60' : '360p', '61' : '480p', '62' : '720p', '80' : '1080p', '0' : 'highest'}[xmlconfig.find('video_encode_quality').string] subtitles(title) subtitlefilecode='' #shutil.move(title + '.flv', os.path.join(os.getcwd(), 'export', '')) print 'Starting mkv merge' if hardcoded: subprocess.call('mkvmerge -o "./export/' + title + '[' + heightp.strip() +'p].mkv" --language 1:jpn -a 1 -d 0 ' + '"./export/' + title + '.flv"' +'"') else: sublang = {u'Español (Espana)': 'spa_spa', u'Français (France)': 'fre', u'Português (Brasil)': 'por', u'English': 'eng', u'Español': 'spa', u'Türkçe': 'tur', u'Italiano': 'ita', u'\u0627\u0644\u0639\u0631\u0628\u064a\u0629': 'ara', u'Deutsch': 'deu'}[lang] # defaulttrack = False #print lang.encode('utf-8') #print sub_id5 #print sub_id6 for i in sub_id2: defaultsub='' sublangc=sub_id5.pop(0) sublangn=sub_id6.pop(0) # print forcesub if not forcesub: if sublangc == sublang: defaultsub=' --default-track 0:yes --forced-track 0:no' else: defaultsub=' --default-track 0:no --forced-track 0:no' else: if sublangc == sublang: defaultsub=' --default-track 0:yes --forced-track 0:yes' else: defaultsub=' --default-track 0:no --forced-track 0:no' if not onlymainsub: subtitlefilecode=subtitlefilecode+' --language 0:' + sublangc.replace('spa_spa','spa') + defaultsub +' --track-name 0:"' + sublangn + '" -s 0 "./export/'+title+'['+sublangc+']'+sublangn+'.ass"' else: if sublangc == sublang: subtitlefilecode=subtitlefilecode+' --language 0:' + sublangc.replace('spa_spa','spa') + defaultsub +' --track-name 0:"' + sublangn + '" -s 0 "./export/'+title+'['+sublangc+']'+sublangn+'.ass"' # subprocess.call('"mkvmerge" -o ".\export\' + title + '.mkv" --language 1:jpn -a 1 -d 0 ' + # '".\export\\' + title + '.flv" --language 0:' + sublang + ' -s 0 ".\export\\'+title+'.ass"') # print '"mkvmerge" -o ".\export\\' + title + '.mkv" --language 0:jpn --language 1:jpn -a 1 -d 0 ' + '".\export\\' + title + '.flv"' + subtitlefilecode +' --title "' + title +'"' mkvcmd='mkvmerge -o "./export/' + title + '[' + heightp.strip() +'].mkv" --language 0:jpn --language 1:jpn -a 1 -d 0 ' + '"./export/' + title + '.flv"' + subtitlefilecode +' --title "' + title +'"' #print mkvcmd #print subtitlefilecode os.system(mkvcmd) print 'Merge process complete' subs_only = False print print '----------' print print 'Starting Final Cleanup' if not subs_only: os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.flv') if not hardcoded or not subs_only: #os.remove(os.path.join(os.getcwd(), 'export', '') + title + '.ass') for root, dirs, files in os.walk('export'): for file in filter(lambda x: re.match(title +'\[.+\]'+ '.ass', x), files): os.remove(os.path.join(root, file)) print 'Cleanup Complete'