Files
2026-03-13 01:07:02 -03:00

55 lines
2.0 KiB
Python

# Import builtin presets from schema
import sys
from pathlib import Path
from django.core.management.base import BaseCommand
from admin.mpr.media_assets.models import TranscodePreset
sys.path.insert(0, str(Path(__file__).resolve().parent.parent.parent.parent.parent.parent))
from core.schema.models import BUILTIN_PRESETS
class Command(BaseCommand):
help = "Load builtin transcode presets"
def handle(self, *args, **options):
created_count = 0
updated_count = 0
for preset_data in BUILTIN_PRESETS:
name = preset_data["name"]
defaults = {
"description": preset_data.get("description", ""),
"is_builtin": True,
"container": preset_data.get("container", "mp4"),
"video_codec": preset_data.get("video_codec", "libx264"),
"video_bitrate": preset_data.get("video_bitrate"),
"video_crf": preset_data.get("video_crf"),
"video_preset": preset_data.get("video_preset"),
"resolution": preset_data.get("resolution"),
"framerate": preset_data.get("framerate"),
"audio_codec": preset_data.get("audio_codec", "aac"),
"audio_bitrate": preset_data.get("audio_bitrate"),
"audio_channels": preset_data.get("audio_channels"),
"audio_samplerate": preset_data.get("audio_samplerate"),
"extra_args": preset_data.get("extra_args", []),
}
preset, created = TranscodePreset.objects.update_or_create(
name=name, defaults=defaults
)
if created:
created_count += 1
self.stdout.write(self.style.SUCCESS(f"Created: {name}"))
else:
updated_count += 1
self.stdout.write(f"Updated: {name}")
self.stdout.write(
self.style.SUCCESS(
f"Done: {created_count} created, {updated_count} updated"
)
)