ytdl_subscribe.subscriptions package

Submodules

ytdl_subscribe.subscriptions.soundcloud module

class ytdl_subscribe.subscriptions.soundcloud.SoundcloudAlbumsAndSinglesSubscription(name: str, config_options: ytdl_subscribe.validators.config.config_options.config_options_validator.ConfigOptionsValidator, preset_options: ytdl_subscribe.validators.config.preset_validator.PresetValidator)

Bases: ytdl_subscribe.subscriptions.subscription.Subscription[ytdl_subscribe.validators.config.source_options.soundcloud_validators.SoundcloudAlbumsAndSinglesSourceValidator, ytdl_subscribe.entries.soundcloud.SoundcloudTrack]

Soundcloud subscription to download albums and tracks as singles.

ytdl_subscribe.subscriptions.subscription module

class ytdl_subscribe.subscriptions.subscription.Subscription(name: str, config_options: ytdl_subscribe.validators.config.config_options.config_options_validator.ConfigOptionsValidator, preset_options: ytdl_subscribe.validators.config.preset_validator.PresetValidator)

Bases: Generic[ytdl_subscribe.subscriptions.subscription.SourceT, ytdl_subscribe.subscriptions.subscription.EntryT], abc.ABC

Subscription classes are the ‘controllers’ that perform…

  • Downloading via ytdlp

  • Adding metadata

  • Placing files in the output directory

while configuring each step with provided configs. Child classes are expected to provide SourceValidator (SourceT), which defines the source and its configurable options. In addition, they should provide in the init an Entry type (EntryT), which is the entry that will be returned after downloading.

download()

Performs the subscription download.

property entry_type: Type[ytdl_subscribe.subscriptions.subscription.EntryT]

The Entry type this subscription uses to represent downloaded media

Type

return

get_downloader(downloader_type: Type[ytdl_subscribe.subscriptions.subscription.DownloaderT], source_ytdl_options: Optional[Dict] = None) ytdl_subscribe.subscriptions.subscription.DownloaderT

Returns the downloader that will be used to download media for this subscription

property metadata_options: ytdl_subscribe.validators.config.metadata_options.metadata_options_validator.MetadataOptionsValidator

Returns the metadata options defined for this subscription

property output_directory: str

The formatted output directory

Type

return

property output_options: ytdl_subscribe.validators.config.output_options.output_options_validator.OutputOptionsValidator

Returns the output options defined for this subscription

property overrides: ytdl_subscribe.validators.config.overrides.overrides_validator.OverridesValidator

Returns the overrides defined for this subscription

post_process_entry(entry: ytdl_subscribe.entries.entry.Entry) None

After downloading an entry to the working directory, perform all post-processing, which includes:

  • Adding metadata to the entry file itself (music tags)

  • Moving the entry file + thumbnail to the output directory with its formatted name

  • Creating new metadata files (NFO) to reside alongside the entry files

Parameters

entry – The entry to post-process

property source_options: ytdl_subscribe.subscriptions.subscription.SourceT

Returns the source options defined for this subscription

property working_directory: str

Returns the directory that the downloader saves files to

ytdl_subscribe.subscriptions.youtube module

class ytdl_subscribe.subscriptions.youtube.YoutubeChannelSubscription(name: str, config_options: ytdl_subscribe.validators.config.config_options.config_options_validator.ConfigOptionsValidator, preset_options: ytdl_subscribe.validators.config.preset_validator.PresetValidator)

Bases: ytdl_subscribe.subscriptions.subscription.Subscription[ytdl_subscribe.validators.config.source_options.youtube_validators.YoutubeChannelSourceValidator, ytdl_subscribe.entries.youtube.YoutubeVideo]

Youtube subscription to download videos from a channel

class ytdl_subscribe.subscriptions.youtube.YoutubePlaylistSubscription(name: str, config_options: ytdl_subscribe.validators.config.config_options.config_options_validator.ConfigOptionsValidator, preset_options: ytdl_subscribe.validators.config.preset_validator.PresetValidator)

Bases: ytdl_subscribe.subscriptions.subscription.Subscription[ytdl_subscribe.validators.config.source_options.youtube_validators.YoutubePlaylistSourceValidator, ytdl_subscribe.entries.youtube.YoutubeVideo]

Youtube subscription to download videos from a playlist

class ytdl_subscribe.subscriptions.youtube.YoutubeVideoSubscription(name: str, config_options: ytdl_subscribe.validators.config.config_options.config_options_validator.ConfigOptionsValidator, preset_options: ytdl_subscribe.validators.config.preset_validator.PresetValidator)

Bases: ytdl_subscribe.subscriptions.subscription.Subscription[ytdl_subscribe.validators.config.source_options.youtube_validators.YoutubeVideoSourceValidator, ytdl_subscribe.entries.youtube.YoutubeVideo]

Youtube subscription to download a single video

Module contents