import { z } from 'zod'; | |
const LinkItemSchema = z.object({ | |
size: z.string(), | |
f: z.string(), | |
q: z.string(), | |
q_text: z.string(), | |
k: z.string(), | |
}); | |
const LinksSchema = z.object({ | |
mp4: z.record(LinkItemSchema), | |
mp3: z.record(LinkItemSchema), | |
other: z.record(LinkItemSchema).optional(), | |
}); | |
const RelatedContentSchema = z.object({ | |
v: z.string(), | |
t: z.string(), | |
}); | |
const RelatedVideosSchema = z.object({ | |
title: z.string(), | |
contents: z.array(RelatedContentSchema), | |
}); | |
const YoutubedlResponseSchema = z.object({ | |
status: z.string(), | |
mess: z.string(), | |
page: z.string(), | |
vid: z.string(), | |
extractor: z.string(), | |
title: z.string(), | |
t: z.number(), | |
a: z.string(), | |
links: LinksSchema, | |
related: z.array(RelatedVideosSchema), | |
}); | |
const ConvertResponseSchema = z.object({ | |
status: z.string(), | |
mess: z.string(), | |
c_status: z.string(), | |
vid: z.string().nullable().optional(), | |
title: z.string().nullable().optional(), | |
ftype: z.string().nullable().optional(), | |
fquality: z.string().nullable().optional(), | |
dlink: z.string().url().nullable().optional(), | |
}); | |
export { | |
LinkItemSchema, | |
LinksSchema, | |
RelatedContentSchema, | |
RelatedVideosSchema, | |
YoutubedlResponseSchema, | |
ConvertResponseSchema | |
}; |