Skip to content

Adding Subtitles

cookbook/adding_subtitles.py
from mosaico.assets import create_asset
from mosaico.assets.reference import AssetReference
from mosaico.assets.text import TextAssetParams
from mosaico.scene import Scene
from mosaico.video.project import VideoProject, VideoProjectConfig


# Subtitles
subtitles = [
    create_asset(
        "text",
        data="First Scene Subtitles",
        params=TextAssetParams(font_size=20, font_family="Arial", align="center", z_index=1),
    ),
    create_asset(
        "text",
        data="Second Scene Subtitles",
        params=TextAssetParams(font_size=20, font_family="Arial", align="right", z_index=2),
    ),
    create_asset(
        "text",
        data="Second Scene center Subtitles",
        params=TextAssetParams(font_size=20, font_family="Arial", align="center", z_index=2),
    ),
    create_asset(
        "text",
        data="Third Scene Subtitles",
        params=TextAssetParams(font_size=20, font_family="Arial", align="left", z_index=2),
    ),
]

# Create references
subtitles_refs = [
    AssetReference.from_asset(subtitles[0]).with_start_time(0).with_end_time(10),
    AssetReference.from_asset(subtitles[1]).with_start_time(10).with_end_time(20),
    AssetReference.from_asset(subtitles[2]).with_start_time(10).with_end_time(20),
    AssetReference.from_asset(subtitles[3]).with_start_time(20).with_end_time(30),
]

# Create scene
scene_1 = Scene(asset_references=[subtitles_refs[0]])
scene_2 = Scene(asset_references=[subtitles_refs[1], subtitles_refs[2]])
scene_3 = Scene(asset_references=[subtitles_refs[3]])


# Create project
project = (
    VideoProject(config=VideoProjectConfig()).add_assets(subtitles).add_timeline_events([scene_1, scene_2, scene_3])
)