|
5 | 5 | SearchType, |
6 | 6 | IndexType, |
7 | 7 | Workflows, |
8 | | - SubtitleStyleDefaultValues, |
| 8 | + SubtitleStyle, |
9 | 9 | ) |
10 | 10 | from videodb.search import SearchFactory, SearchResult |
11 | 11 | from videodb.shot import Shot |
@@ -130,57 +130,14 @@ def index_spoken_words(self) -> None: |
130 | 130 | }, |
131 | 131 | ) |
132 | 132 |
|
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 | + def add_subtitle(self, style: SubtitleStyle = SubtitleStyle()) -> str: |
| 134 | + if not isinstance(style, SubtitleStyle): |
| 135 | + raise ValueError("style must be of type SubtitleStyle") |
157 | 136 | subtitle_data = self._connection.post( |
158 | 137 | path=f"{ApiPath.video}/{self.id}/{ApiPath.workflow}", |
159 | 138 | data={ |
160 | 139 | "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 | | - }, |
| 140 | + "subtitle_style": style.__dict__, |
184 | 141 | }, |
185 | 142 | ) |
186 | 143 | return subtitle_data.get("stream_url", None) |
|
0 commit comments