From 2f129c47663ebe86bc07e68c12a8768cf9e4ef4d Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Sun, 20 Jul 2014 11:35:55 +0200 Subject: [PATCH] parse language from audio track if video has multiple audio tracks --- ox/file.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ox/file.py b/ox/file.py index 06bbbfa..043bec5 100644 --- a/ox/file.py +++ b/ox/file.py @@ -177,6 +177,15 @@ def avinfo(filename, cached=True): if not 'display_aspect_ratio' in v and 'width' in v: v['display_aspect_ratio'] = '%d:%d' % (v['width'], v['height']) v['pixel_aspect_ratio'] = '1:1' + if len(info.get('audio', [])) > 1: + ffmpeg = cmd('ffmpeg') + p = subprocess.Popen([ffmpeg, '-i', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = p.communicate() + languages = [re.compile('\((.+?)\):').findall(l) for l in stderr.split('\n') if 'Stream' in l and 'Audio' in l] + for i, stream in enumerate(info['audio']): + language = languages[i] + if language and language[0] != 'und': + stream['language'] = language[0] return info return {'path': filename, 'size': 0}