diff options
Diffstat (limited to 'youtube_dl/postprocessor/ffmpeg.py')
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 196 | 
1 files changed, 2 insertions, 194 deletions
| diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index cc65b34e7..fe7e0a8ee 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -21,6 +21,7 @@ from ..utils import (      shell_quote,      subtitles_filename,      dfxp2srt, +    ISO639Utils,  ) @@ -307,199 +308,6 @@ class FFmpegVideoConvertorPP(FFmpegPostProcessor):  class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): -    # See http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt -    _lang_map = { -        'aa': 'aar', -        'ab': 'abk', -        'ae': 'ave', -        'af': 'afr', -        'ak': 'aka', -        'am': 'amh', -        'an': 'arg', -        'ar': 'ara', -        'as': 'asm', -        'av': 'ava', -        'ay': 'aym', -        'az': 'aze', -        'ba': 'bak', -        'be': 'bel', -        'bg': 'bul', -        'bh': 'bih', -        'bi': 'bis', -        'bm': 'bam', -        'bn': 'ben', -        'bo': 'bod', -        'br': 'bre', -        'bs': 'bos', -        'ca': 'cat', -        'ce': 'che', -        'ch': 'cha', -        'co': 'cos', -        'cr': 'cre', -        'cs': 'ces', -        'cu': 'chu', -        'cv': 'chv', -        'cy': 'cym', -        'da': 'dan', -        'de': 'deu', -        'dv': 'div', -        'dz': 'dzo', -        'ee': 'ewe', -        'el': 'ell', -        'en': 'eng', -        'eo': 'epo', -        'es': 'spa', -        'et': 'est', -        'eu': 'eus', -        'fa': 'fas', -        'ff': 'ful', -        'fi': 'fin', -        'fj': 'fij', -        'fo': 'fao', -        'fr': 'fra', -        'fy': 'fry', -        'ga': 'gle', -        'gd': 'gla', -        'gl': 'glg', -        'gn': 'grn', -        'gu': 'guj', -        'gv': 'glv', -        'ha': 'hau', -        'he': 'heb', -        'hi': 'hin', -        'ho': 'hmo', -        'hr': 'hrv', -        'ht': 'hat', -        'hu': 'hun', -        'hy': 'hye', -        'hz': 'her', -        'ia': 'ina', -        'id': 'ind', -        'ie': 'ile', -        'ig': 'ibo', -        'ii': 'iii', -        'ik': 'ipk', -        'io': 'ido', -        'is': 'isl', -        'it': 'ita', -        'iu': 'iku', -        'ja': 'jpn', -        'jv': 'jav', -        'ka': 'kat', -        'kg': 'kon', -        'ki': 'kik', -        'kj': 'kua', -        'kk': 'kaz', -        'kl': 'kal', -        'km': 'khm', -        'kn': 'kan', -        'ko': 'kor', -        'kr': 'kau', -        'ks': 'kas', -        'ku': 'kur', -        'kv': 'kom', -        'kw': 'cor', -        'ky': 'kir', -        'la': 'lat', -        'lb': 'ltz', -        'lg': 'lug', -        'li': 'lim', -        'ln': 'lin', -        'lo': 'lao', -        'lt': 'lit', -        'lu': 'lub', -        'lv': 'lav', -        'mg': 'mlg', -        'mh': 'mah', -        'mi': 'mri', -        'mk': 'mkd', -        'ml': 'mal', -        'mn': 'mon', -        'mr': 'mar', -        'ms': 'msa', -        'mt': 'mlt', -        'my': 'mya', -        'na': 'nau', -        'nb': 'nob', -        'nd': 'nde', -        'ne': 'nep', -        'ng': 'ndo', -        'nl': 'nld', -        'nn': 'nno', -        'no': 'nor', -        'nr': 'nbl', -        'nv': 'nav', -        'ny': 'nya', -        'oc': 'oci', -        'oj': 'oji', -        'om': 'orm', -        'or': 'ori', -        'os': 'oss', -        'pa': 'pan', -        'pi': 'pli', -        'pl': 'pol', -        'ps': 'pus', -        'pt': 'por', -        'qu': 'que', -        'rm': 'roh', -        'rn': 'run', -        'ro': 'ron', -        'ru': 'rus', -        'rw': 'kin', -        'sa': 'san', -        'sc': 'srd', -        'sd': 'snd', -        'se': 'sme', -        'sg': 'sag', -        'si': 'sin', -        'sk': 'slk', -        'sl': 'slv', -        'sm': 'smo', -        'sn': 'sna', -        'so': 'som', -        'sq': 'sqi', -        'sr': 'srp', -        'ss': 'ssw', -        'st': 'sot', -        'su': 'sun', -        'sv': 'swe', -        'sw': 'swa', -        'ta': 'tam', -        'te': 'tel', -        'tg': 'tgk', -        'th': 'tha', -        'ti': 'tir', -        'tk': 'tuk', -        'tl': 'tgl', -        'tn': 'tsn', -        'to': 'ton', -        'tr': 'tur', -        'ts': 'tso', -        'tt': 'tat', -        'tw': 'twi', -        'ty': 'tah', -        'ug': 'uig', -        'uk': 'ukr', -        'ur': 'urd', -        'uz': 'uzb', -        've': 'ven', -        'vi': 'vie', -        'vo': 'vol', -        'wa': 'wln', -        'wo': 'wol', -        'xh': 'xho', -        'yi': 'yid', -        'yo': 'yor', -        'za': 'zha', -        'zh': 'zho', -        'zu': 'zul', -    } - -    @classmethod -    def _conver_lang_code(cls, code): -        """Convert language code from ISO 639-1 to ISO 639-2/T""" -        return cls._lang_map.get(code[:2]) -      def run(self, information):          if information['ext'] not in ['mp4', 'mkv']:              self._downloader.to_screen('[ffmpeg] Subtitles can only be embedded in mp4 or mkv files') @@ -525,7 +333,7 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):              opts += ['-c:s', 'mov_text']          for (i, lang) in enumerate(sub_langs):              opts.extend(['-map', '%d:0' % (i + 1)]) -            lang_code = self._conver_lang_code(lang) +            lang_code = ISO639Utils.short2long(lang)              if lang_code is not None:                  opts.extend(['-metadata:s:s:%d' % i, 'language=%s' % lang_code]) | 
