pub struct SyncCommand {
pub channels: Vec<String>,
pub out: PathBuf,
pub lang: String,
pub format: CliFormat,
pub auto: bool,
pub full: bool,
pub since: Option<String>,
pub concurrency: usize,
pub refresh_metadata_older_than: Option<String>,
pub dry_run: bool,
}Expand description
Syncs transcripts for all videos in one or more YouTube channels to the filesystem, incrementally (skips videos already synced).
Fields§
§channels: Vec<String>One or more channel references: a UC… ID, a channel URL
(/channel/UC…, /@handle, /c/Name, /user/Name), or a bare
@handle.
out: PathBufOutput directory. Transcripts are written under
<out>/<channel-id>/<video-id>.<lang>.<format>.
lang: StringPreferred caption language (e.g. en, en-US). Prefix fallback is
applied — en matches en-US.
format: CliFormatOutput format.
auto: boolAllow falling through to auto-generated (ASR) captions when no manual track matches. Recommended for channel syncs — many uploads only have auto captions.
full: boolBackfill the channel’s entire upload history via the InnerTube
/browse endpoint. Without this, only the ~15 most recent uploads
(the RSS feed) are considered.
since: Option<String>Only sync videos published on or after this date (YYYY-MM-DD or an
RFC 3339 timestamp). Reliable for the default (RSS) path, which carries
per-video publish dates; best-effort under --full (the browse grid
has no per-item dates, so this is ignored there).
concurrency: usizeMaximum number of transcripts to fetch concurrently.
refresh_metadata_older_than: Option<String>Re-fetch metadata sidecars whose fetched_at is older than this
cutoff. Accepts YYYY-MM-DD (midnight UTC), a full RFC 3339 timestamp,
or a relative spec like "2 days ago" (units: minute, hour, day, week,
month, year). Without this flag existing sidecars are never refreshed,
but missing ones are always downloaded.
dry_run: boolList what would be fetched without downloading or writing anything.
Implementations§
Trait Implementations§
Source§impl Args for SyncCommand
impl Args for SyncCommand
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl CommandFactory for SyncCommand
impl CommandFactory for SyncCommand
Source§impl FromArgMatches for SyncCommand
impl FromArgMatches for SyncCommand
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.