|
5 | 5 | SearchType, |
6 | 6 | IndexType, |
7 | 7 | Workflows, |
| 8 | + SubtitleStyleDefaultValues, |
8 | 9 | ) |
9 | 10 | from videodb.search import SearchFactory, SearchResult |
10 | 11 | from videodb.shot import Shot |
@@ -129,11 +130,57 @@ def index_spoken_words(self) -> None: |
129 | 130 | }, |
130 | 131 | ) |
131 | 132 |
|
132 | | - def add_subtitle(self) -> str: |
| 133 | + def add_subtitle( |
| 134 | + self, |
| 135 | + font_name: str = SubtitleStyleDefaultValues.font_name, |
| 136 | + font_size: float = SubtitleStyleDefaultValues.font_size, |
| 137 | + primary_colour: str = SubtitleStyleDefaultValues.primary_colour, |
| 138 | + secondary_colour: str = SubtitleStyleDefaultValues.secondary_colour, |
| 139 | + outline_colour: str = SubtitleStyleDefaultValues.outline_colour, |
| 140 | + back_colour: str = SubtitleStyleDefaultValues.back_colour, |
| 141 | + bold: bool = SubtitleStyleDefaultValues.bold, |
| 142 | + italic: bool = SubtitleStyleDefaultValues.italic, |
| 143 | + underline: bool = SubtitleStyleDefaultValues.underline, |
| 144 | + strike_out: bool = SubtitleStyleDefaultValues.strike_out, |
| 145 | + scale_x: float = SubtitleStyleDefaultValues.scale_x, |
| 146 | + scale_y: float = SubtitleStyleDefaultValues.scale_x, |
| 147 | + spacing: float = SubtitleStyleDefaultValues.spacing, |
| 148 | + angle: float = SubtitleStyleDefaultValues.angle, |
| 149 | + border_style: int = SubtitleStyleDefaultValues.border_style, |
| 150 | + outline: float = SubtitleStyleDefaultValues.outline, |
| 151 | + shadow: float = SubtitleStyleDefaultValues.shadow, |
| 152 | + alignment: int = SubtitleStyleDefaultValues.alignment, |
| 153 | + margin_l: int = SubtitleStyleDefaultValues.margin_l, |
| 154 | + margin_r: int = SubtitleStyleDefaultValues.margin_r, |
| 155 | + margin_v: int = SubtitleStyleDefaultValues.margin_v, |
| 156 | + ) -> str: |
133 | 157 | subtitle_data = self._connection.post( |
134 | 158 | path=f"{ApiPath.video}/{self.id}/{ApiPath.workflow}", |
135 | 159 | data={ |
136 | 160 | "type": Workflows.add_subtitles, |
| 161 | + "subtitle_style": { |
| 162 | + "font_name": font_name, |
| 163 | + "font_size": font_size, |
| 164 | + "primary_colour": primary_colour, |
| 165 | + "secondary_colour": secondary_colour, |
| 166 | + "outline_colour": outline_colour, |
| 167 | + "back_colour": back_colour, |
| 168 | + "bold": bold, |
| 169 | + "italic": italic, |
| 170 | + "underline": underline, |
| 171 | + "strike_out": strike_out, |
| 172 | + "scale_x": scale_x, |
| 173 | + "scale_y": scale_y, |
| 174 | + "spacing": spacing, |
| 175 | + "angle": angle, |
| 176 | + "border_style": border_style, |
| 177 | + "outline": outline, |
| 178 | + "shadow": shadow, |
| 179 | + "alignment": alignment, |
| 180 | + "margin_l": margin_l, |
| 181 | + "margin_r": margin_r, |
| 182 | + "margin_v": margin_v, |
| 183 | + }, |
137 | 184 | }, |
138 | 185 | ) |
139 | 186 | return subtitle_data.get("stream_url", None) |
|
0 commit comments