]> git.parisson.com Git - teleforma.git/commitdiff
fix media duration
authorGuillaume Pellerin <guillaume.pellerin@parisson.com>
Wed, 5 Oct 2022 10:38:20 +0000 (12:38 +0200)
committerGuillaume Pellerin <guillaume.pellerin@parisson.com>
Wed, 5 Oct 2022 10:38:20 +0000 (12:38 +0200)
teleforma/models/core.py

index 2de2044f04fda1698edcfdff1af073665c502555..f44eaeb5cad787c369745672f5cd507a4203f4ce 100755 (executable)
 """
 
 import os
+import re
 import string
 import datetime
 import mimetypes
 import copy
 import random
 from unidecode import unidecode
+import subprocess
 
 from django.conf import settings
 from django.db.models import *
@@ -681,12 +683,13 @@ class Media(MediaBase):
         if self.file:
             process = subprocess.Popen(["ffmpeg", "-i", self.file.path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
             stdout, stderr = process.communicate()
-            try:
-                pattern = re.compile(r'Duration: ([\w.-]+):([\w.-]+):([\w.-]+),')
-                match = pattern.search(stdout)
-                duration = "%s:%s:%s" % (match.group(1), match.group(2), match.group(3))
-            except:
-                duration = None
+            pattern = re.compile(r'Duration: ([\w.-]+):([\w.-]+):([\w.-]+),')
+            match = pattern.search(str(stdout))
+            hours = int(match.group(1))
+            minutes = int(match.group(2))
+            seconds = int(match.group(3)[:-3])
+            #duration = "%s:%s:%s" % (match.group(1), match.group(2), match.group(3))
+            duration = datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds).total_seconds()
         else:
             duration = None