From 1df49286f17a4acc9867e93396a7b64a0509bda0 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Wed, 5 Oct 2022 12:38:20 +0200 Subject: [PATCH] fix media duration --- teleforma/models/core.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 2de2044f..f44eaeb5 100755 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -35,12 +35,14 @@ """ 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 -- 2.39.5