d_id/endpoints/video/
mod.rs1pub mod talks;
2pub mod clips;
3pub mod animations;
4pub mod streams;
5
6pub use crate::client::*;
7pub use crate::prelude::*;
8pub use crate::error::*;
9pub use serde::{Deserialize, Serialize};
10
11#[derive(Serialize, Deserialize, Debug)]
12#[serde(untagged)]
13pub enum Script {
14 Text {
15 r#type: String,
16 subtitles: bool,
17 provider: Option<TTSProvider>,
18 input: String,
19 ssml: bool,
20 },
21 Audio {
22 r#type: String,
23 subtitles: bool,
24 #[serde(skip_serializing_if = "String::is_empty")]
25 audio_url: String,
26 reduce_noise: bool,
27 },
28
29}
30
31#[derive(Serialize, Deserialize, Debug)]
32#[serde(untagged)]
33pub enum TTSProvider {
34 MicrosoftTTS {
35 r#type: String,
36 voice_id: String,
37 },
39 ElevenLabsTTS {
40 r#type: String,
41 voice_id: String,
42 },
44 AmazonTTS {
45 r#type: String,
46 voice_id: String,
47 },
49 AfflorithmicsTTS {
50 r#type: String,
51 voice_id: String,
52 },
54
55}
56
57
58
59
60#[derive(Serialize, Deserialize, Debug)]
61pub enum Driver {
62 #[serde(rename = "bank://lively/driver-01")]
63 LivelyDriver01,
64 #[serde(rename = "bank://lively/driver-02")]
65 LivelyDriver02,
66 #[serde(rename = "bank://lively/driver-03")]
67 LivelyDriver03,
68 #[serde(rename = "bank://lively/driver-04")]
69 LivelyDriver04,
70 #[serde(rename = "bank://lively/driver-05")]
71 LivelyDriver05,
72 #[serde(rename = "bank://lively/driver-06")]
73 LivelyDriver06,
74 #[serde(rename = "bank://subtle/driver-01")]
75 SubtleDriver01,
76 #[serde(rename = "bank://subtle/driver-02")]
77 SubtleDriver02,
78 #[serde(rename = "bank://subtle/driver-03")]
79 SubtleDriver03,
80 #[serde(rename = "bank://subtle/driver-04")]
81 SubtleDriver04,
82}
83
84
85
86#[derive(Serialize, Deserialize, Debug)]
87pub struct Config {
88 logo: Logo,
89 align_driver: bool,
90 align_expand_factor: f32,
91 auto_match: bool,
92 motion_factor: f32,
93 normalization_factor: f32,
94 sharpen: bool,
95 stitch: bool,
96 result_format: String,
97 fluent: bool,
98 pad_audio: f32,
99 driver_expression: DriverExpressions,
100}
101
102#[derive(Serialize, Deserialize, Debug)]
103pub struct Logo {
104 url: String,
105 position: Vec<u32>
106}
107
108#[derive(Serialize, Deserialize, Debug)]
109pub struct DriverExpressions {
110 expressions: Vec<ExpressionObject>
111}
112
113#[derive(Serialize, Deserialize, Debug)]
114pub struct ExpressionObject {
115 start_frame: f32,
116 expression: String,
117 intensity: f32,
118}
119
120#[derive(Serialize, Deserialize, Debug)]
121pub struct Face {
122 size: u32,
123 top_left: Vec<u32>,
124 overlap: Overlap,
125 face_id: String,
126 detection_confidence: f32,
127 detection: Detection,
128}
129
130#[derive(Serialize, Deserialize, Debug)]
131#[serde(rename_all = "UPPERCASE")]
132pub enum Overlap {
133 No,
134 Partial,
135 Yes,
136 Unknown,
137}
138
139#[derive(Serialize, Deserialize, Debug)]
140pub struct Detection {
141 top: f32,
142 left: f32,
143 bottom: f32,
144 right: f32,
145}