Add file cache.
[audio.git] / src / youtube / models.py
index ea51905..f0ecc6c 100644 (file)
@@ -5,6 +5,7 @@ from django.db import models
 from django.utils.translation import gettext_lazy as _
 from django.template import Template, Context
 from apiclient import youtube_call
+from archive.settings import LICENSE, LICENSE_NAME
 from .utils import (
     concat_audio,
     concat_videos,
@@ -12,6 +13,7 @@ from .utils import (
     get_duration,
     get_framerate,
     mux,
+    standardize_audio,
     standardize_video,
     video_from_image,
 )
@@ -42,7 +44,11 @@ class YouTube(models.Model):
         verbose_name_plural = _("YouTube configurations")
 
     def get_context(self, audiobook):
-        return Context(dict(audiobook=audiobook))
+        return Context(dict(
+            audiobook=audiobook,
+            LICENSE=LICENSE,
+            LICENSE_NAME=LICENSE_NAME,
+        ))
 
     def get_description(self, audiobook):
         return Template(self.description_template).render(self.get_context(audiobook))
@@ -56,7 +62,8 @@ class YouTube(models.Model):
                 title=self.get_title(audiobook),
                 description=self.get_description(audiobook),
                 categoryId=self.category,
-                defaultLanguage='pl'
+                defaultLanguage='pl',
+                defaultAudioLanguage='pl',
             ),
             status=dict(
                 privacyStatus=self.privacy_status,
@@ -112,12 +119,19 @@ class YouTube(models.Model):
     
     def prepare_audio(self, input_path):
         files = []
+        delete = []
         if self.intro_flac:
-            files.append(self.intro_flac.path)
+            files.append(standardize_audio(self.intro_flac.path))
+            delete.append(files[-1])
         files.append(input_path)
         if self.outro_flac:
-            files.append(self.outro_flac.path)
-        return concat_audio(files)
+            files.append(standardize_audio(self.outro_flac.path))
+            delete.append(files[-1])
+        output = concat_audio(files)
+        for d in delete:
+            unlink(d)
+        return output
+
     
     def prepare_video(self, duration):
         concat = []