d_id/endpoints/video/
mod.rs

1pub 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        //voice_config: VoiceConfig,
38    },
39    ElevenLabsTTS {
40        r#type: String,
41        voice_id: String,
42        //voice_config: VoiceConfig,
43    },
44    AmazonTTS {
45        r#type: String,
46        voice_id: String,
47        //voice_config: VoiceConfig,
48    },
49    AfflorithmicsTTS {
50        r#type: String,
51        voice_id: String,
52        //voice_config: VoiceConfig,
53    },
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}