ytdlp_ejs/
test_data.rs

1/// Test data for YouTube player solvers
2use std::collections::HashMap;
3
4#[derive(Debug, Clone)]
5pub struct TestStep {
6    pub input: &'static str,
7    pub expected: &'static str,
8}
9
10#[derive(Debug, Clone)]
11pub struct TestCase {
12    pub player: &'static str,
13    pub variants: Option<&'static [&'static str]>,
14    pub n: &'static [TestStep],
15    pub sig: &'static [TestStep],
16}
17
18/// All player variants
19pub const ALL_VARIANTS: &[&str] = &[
20    "main", "tcc", "tce", "es5", "es6", "tv", "tv_es6", "phone", "tablet",
21];
22
23/// Variants without tce (for players where tce causes exceptions)
24pub const VARIANTS_NO_TCE: &[&str] = &[
25    "main", "tcc", "es5", "es6", "tv", "tv_es6", "phone", "tablet",
26];
27
28/// Player URL paths for each variant
29pub fn get_player_paths() -> HashMap<&'static str, &'static str> {
30    let mut map = HashMap::new();
31    map.insert("main", "player_ias.vflset/en_US/base.js");
32    map.insert("tcc", "player_ias_tcc.vflset/en_US/base.js");
33    map.insert("tce", "player_ias_tce.vflset/en_US/base.js");
34    map.insert("es5", "player_es5.vflset/en_US/base.js");
35    map.insert("es6", "player_es6.vflset/en_US/base.js");
36    map.insert("tv", "tv-player-ias.vflset/tv-player-ias.js");
37    map.insert("tv_es6", "tv-player-es6.vflset/tv-player-es6.js");
38    map.insert("phone", "player-plasma-ias-phone-en_US.vflset/base.js");
39    map.insert("tablet", "player-plasma-ias-tablet-en_US.vflset/base.js");
40    map
41}
42
43/// Get cache path for a player file
44pub fn get_cache_path(player: &str, variant: &str) -> String {
45    format!("players/{}-{}", player, variant)
46}
47
48/// All test cases
49pub const TEST_CASES: &[TestCase] = &[
50    TestCase {
51        player: "3d3ba064",
52        variants: None,
53        n: &[
54            TestStep {
55                input: "ZdZIqFPQK-Ty8wId",
56                expected: "qmtUsIz04xxiNW",
57            },
58            TestStep {
59                input: "4GMrWHyKI5cEvhDO",
60                expected: "N9gmEX7YhKTSmw",
61            },
62        ],
63        sig: &[TestStep {
64            input: "gN7a-hudCuAuPH6fByOk1_GNXN0yNMHShjZXS2VOgsEItAJz0tipeavEOmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt",
65            expected: "ttJC2JfQdSswRAIgGBCxZyAfKyi0cjXCb3gqEctUw-NYdNmOEvaepit0zJAtIEsgOV2SXZjhSHMNy0NXNG_1kNyBf6HPuAuCduh-a7O",
66        }],
67    },
68    TestCase {
69        player: "5ec65609",
70        variants: None,
71        n: &[TestStep {
72            input: "0eRGgQWJGfT5rFHFj",
73            expected: "4SvMpDQH-vBJCw",
74        }],
75        sig: &[TestStep {
76            input: "AAJAJfQdSswRQIhAMG5SN7-cAFChdrE7tLA6grH0rTMICA1mmDc0HoXgW3CAiAQQ4=CspfaF_vt82XH5yewvqcuEkvzeTsbRuHssRMyJQ=I",
77            expected: "AJfQdSswRQIhAMG5SN7-cAFChdrE7tLA6grI0rTMICA1mmDc0HoXgW3CAiAQQ4HCspfaF_vt82XH5yewvqcuEkvzeTsbRuHssRMyJQ==",
78        }],
79    },
80    TestCase {
81        player: "6742b2b9",
82        variants: None,
83        n: &[
84            TestStep {
85                input: "_HPB-7GFg1VTkn9u",
86                expected: "qUAsPryAO_ByYg",
87            },
88            TestStep {
89                input: "K1t_fcB6phzuq2SF",
90                expected: "Y7PcOt3VE62mog",
91            },
92        ],
93        sig: &[TestStep {
94            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
95            expected: "AJfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYu7S6SHM8EjoCACIEQnz-nKN5RgG6iUTnNJC58csYPSrnS_SzricuUMJZGM",
96        }],
97    },
98    TestCase {
99        player: "23ccdd25",
100        variants: None,
101        n: &[TestStep {
102            input: "0eRGgQWJGfT5rFHFj",
103            expected: "orSsTqUaUO-j",
104        }],
105        sig: &[TestStep {
106            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
107            expected: "ZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hAU6wbTvorvVVMgIARwsSdQfJAN",
108        }],
109    },
110    TestCase {
111        player: "3597727b",
112        variants: None,
113        n: &[TestStep {
114            input: "0eRGgQWJGfT5rFHFj",
115            expected: "PRwo5dDfisg0ejA2",
116        }],
117        sig: &[TestStep {
118            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
119            expected: "AAJfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYuMS6SHM8Ej7CACIEQnz-nKN5RgG6iUTnNJC58csYPSroS_SzricuUMJZG",
120        }],
121    },
122    TestCase {
123        player: "3752a005",
124        variants: Some(VARIANTS_NO_TCE),
125        n: &[TestStep {
126            input: "0eRGgQWJGfT5rFHFj",
127            expected: "j22ZtsqVsR0Dn",
128        }],
129        sig: &[TestStep {
130            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
131            expected: "ZJM_ucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHG6S7uYq4TGjQXSD4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
132        }],
133    },
134    TestCase {
135        player: "afc7785b",
136        variants: Some(VARIANTS_NO_TCE),
137        n: &[TestStep {
138            input: "0eRGgQWJGfT5rFHFj",
139            expected: "j22ZtsqVsR0Dn",
140        }],
141        sig: &[TestStep {
142            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
143            expected: "ZJM_ucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHG6S7uYq4TGjQXSD4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
144        }],
145    },
146    TestCase {
147        player: "b9645327",
148        variants: Some(VARIANTS_NO_TCE),
149        n: &[TestStep {
150            input: "0eRGgQWJGfT5rFHFj",
151            expected: "j22ZtsqVsR0Dn",
152        }],
153        sig: &[TestStep {
154            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
155            expected: "ZJM_ucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHG6S7uYq4TGjQXSD4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
156        }],
157    },
158    TestCase {
159        player: "035b9195",
160        variants: Some(VARIANTS_NO_TCE),
161        n: &[TestStep {
162            input: "0eRGgQWJGfT5rFHFj",
163            expected: "j22ZtsqVsR0Dn",
164        }],
165        sig: &[TestStep {
166            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
167            expected: "ZJM_ucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHG6S7uYq4TGjQXSD4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
168        }],
169    },
170    TestCase {
171        player: "6740c111",
172        variants: None,
173        n: &[TestStep {
174            input: "0eRGgQWJGfT5rFHFj",
175            expected: "AVsXYE0uE1k8e",
176        }],
177        sig: &[TestStep {
178            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
179            expected: "JfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYu7S6SHM8EjoCACIEQnz-MKN5RgG6iUTnNJC58csYPSrnS_SzricuUMJZGn",
180        }],
181    },
182    TestCase {
183        player: "f6a4f3bc",
184        variants: None,
185        n: &[TestStep {
186            input: "0eRGgQWJGfT5rFHFj",
187            expected: "H1NKYFbhlqZ",
188        }],
189        sig: &[TestStep {
190            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
191            expected: "JfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYM7S6SHM8EjoCACIEQnz-nKM5RgG6iUTnNJC58cNYPSrnS_SzricuUMJZGu",
192        }],
193    },
194    TestCase {
195        player: "b66835e2",
196        variants: None,
197        n: &[TestStep {
198            input: "0eRGgQWJGfT5rFHFj",
199            expected: "H1NKYFbhlqZ",
200        }],
201        sig: &[TestStep {
202            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
203            expected: "JfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYM7S6SHM8EjoCACIEQnz-nKM5RgG6iUTnNJC58cNYPSrnS_SzricuUMJZGu",
204        }],
205    },
206    TestCase {
207        player: "4f8fa943",
208        variants: None,
209        n: &[TestStep {
210            input: "0eRGgQWJGfT5rFHFj",
211            expected: "JWWr7hDSRpMq5",
212        }],
213        sig: &[TestStep {
214            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
215            expected: "AAJfQdSswRAIgMVVvrovTbw6UNh99kPa4D_XQjGT4qYu7S6SHr8EjoCACIEQnz-nKN5RgG6iUTnNZC58csYPSMnS_SzricuUM",
216        }],
217    },
218    TestCase {
219        player: "0004de42",
220        variants: None,
221        n: &[TestStep {
222            input: "0eRGgQWJGfT5rFHFj",
223            expected: "OPd7UEsCDmCw4qD0",
224        }],
225        sig: &[TestStep {
226            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJAA",
227            expected: "ZJMUucirzS_SnrSPYsc85MJNnTUi6GgR5NCn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQ",
228        }],
229    },
230    TestCase {
231        player: "2b83d2e0",
232        variants: None,
233        n: &[TestStep {
234            input: "0eRGgQWJGfT5rFHFj",
235            expected: "euHbygrCMLksxd",
236        }],
237        sig: &[TestStep {
238            input: "MMGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKn-znQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJA",
239            expected: "-MGZJMUucirzS_SnrSPYsc85CJNnTUi6GgR5NKnMznQEICACojE8MHS6S7uYq4TGjQX_D4aPk99hNU6wbTvorvVVMgIARwsSdQfJ",
240        }],
241    },
242    TestCase {
243        player: "638ec5c6",
244        variants: None,
245        n: &[TestStep {
246            input: "ZdZIqFPQK-Ty8wId",
247            expected: "1qov8-KM-yH",
248        }],
249        sig: &[TestStep {
250            input: "gN7a-hudCuAuPH6fByOk1_GNXN0yNMHShjZXS2VOgsEItAJz0tipeavEOmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt",
251            expected: "MhudCuAuP-6fByOk1_GNXN7gNHHShjyXS2VOgsEItAJz0tipeav0OmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt",
252        }],
253    },
254    TestCase {
255        player: "87644c66",
256        variants: None,
257        n: &[TestStep {
258            input: "ZdZIqFPQK-Ty8wId",
259            expected: "iF5NxEm1BYk",
260        }],
261        sig: &[TestStep {
262            input: "gN7a-hudCuAuPH6fByOk1_GNXN0yNMHShjZXS2VOgsEItAJz0tipeavEOmNdYN-wUtcEqD3bCXjc0iyKfAyZxCBGgIARwsSdQfJ2CJtt",
263            expected: "atJC2JfQdSswRAtgGBCxZyAfKyi0cjXCb3DqEctUw-NYdNmOEvIepit0zJAtIEsgOV2SXZjhSHMNy0NXNG_1kOyBf6HPuAuCduh-a7Ng",
264        }],
265    },
266];