[package] name = "ac-rustube" version = "0.6.1" authors = ["Dzenan Jupic "] edition = "2018" description = "A YouTube video downloader, originally inspired by pytube, written in Rust." keywords = ["youtube", "download", "downloader", "video", "pytube"] license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/DzenanJupic/rustube" documentation = "https://docs.rs/rustube" include = [ "src/**/*", "Cargo.toml", ] [package.metadata.docs.rs] all-features = true [workspace] members = [".", "cli"] #default-members = [".", "cli"] # todo: add features to opt in/out of deserialization of some data (title, view_count, ...) [dependencies] bytes = { version = "1.1.0", optional = true } cfg-if = "1.0.0" chrono = { version = "0.4.19", default_features = false, features = ["std"], optional = true } derivative = "2.2.0" derive_more = "0.99.16" futures = { version = "0.3.17", optional = true } log = "0.4.14" log-derive = "0.4.1" mime = { version = "0.3.16", optional = true } regex = { version = "1.5.4", optional = true } reqwest = { version = "0.11.5", default_features = false, optional = true } serde = { version = "1.0.130", default-features = false, features = ["alloc", "derive"] } serde_qs = { version = "0.8.5", optional = true } serde_json = { version = "1.0.68", optional = true } serde_with = { version = "1.10.0", optional = true } thiserror = { version = "1.0.30", optional = true } tokio = { version = "1.12.0", optional = true } tokio-stream = { version = "0.1.7", optional = true } url = "2.2.2" once_cell = "1.12.0" [dev-dependencies] rand = "0.8.4" test-env-log = "0.2.7" env_logger = "0.9.0" tokio = { version = "1.12.0", features = ["full"] } tokio-test = "0.4.2" [build-dependencies] rustc_version = "0.4.0" [features] # By default, the minimal features for downloading a video are enabled. If you compile with default-features = false, # you get only the Id type as well as the Error type. default = ["download", "std", "default-tls"] std = ["regex", "thiserror"] callback = ["tokio/sync", "futures", "download"] microformat = ["fetch", "chrono/serde"] download = [ "fetch", "tokio/fs", "tokio/io-util", "tokio/parking_lot", "tokio-stream" ] # could be usefull if you don't want to download videos, but just want to get information like title, view-count, ... fetch = [ "tokio/macros", "reqwest/json", "serde/default", "serde/rc", "serde_with/json", "serde_json", "serde_qs", "bytes", "chrono", "mime", "std", "descramble", "url/serde", "reqwest/cookies", "reqwest/stream", "reqwest/gzip" ] descramble = ["fetch", "stream"] stream = ["descramble", "chrono/serde"] blocking = ["tokio/rt", "tokio/rt-multi-thread", "std"] default-tls = ["reqwest/default-tls"] native-tls = ["reqwest/native-tls"] rustls-tls = ["reqwest/rustls-tls"]