about summary refs log tree commit diff stats
path: root/crates/yt_dlp/src/post_processors/mod.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-16 13:58:55 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-16 13:58:55 +0200
commitab61a4e47a955dd4a5dabeef3ade1b85f6576b84 (patch)
tree4076a7f96ef2a6b6b359eff83bb9b8c8357a03e5 /crates/yt_dlp/src/post_processors/mod.rs
parentrefactor(yt_dlp/lib): De-duplicate the info json sanitize code (diff)
downloadyt-ab61a4e47a955dd4a5dabeef3ade1b85f6576b84.zip
feat(yt_dlp): Support a DeArrow post processor
Diffstat (limited to 'crates/yt_dlp/src/post_processors/mod.rs')
-rw-r--r--crates/yt_dlp/src/post_processors/mod.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/crates/yt_dlp/src/post_processors/mod.rs b/crates/yt_dlp/src/post_processors/mod.rs
new file mode 100644
index 0000000..6067c7a
--- /dev/null
+++ b/crates/yt_dlp/src/post_processors/mod.rs
@@ -0,0 +1,20 @@
+use crate::InfoJson;
+
+pub mod dearrow;
+
+pub trait PostProcessor: std::fmt::Debug + Send {
+    /// Process a [`InfoJson`] object and return the updated one.
+    ///
+    /// # Errors
+    /// If the processing steps failed.
+    fn process(&self, info: InfoJson) -> Result<InfoJson, Error>;
+
+    /// The supported extractors for this post processor
+    fn extractors(&self) -> &'static [&'static str];
+}
+
+#[derive(thiserror::Error, Debug)]
+pub enum Error {
+    #[error("Failed to access a api: {0}")]
+    Get(#[from] reqwest::Error),
+}