wyvern.plugins.ytdlp

Youtube DL Artisan and Job.

Contains classes for downloading videos via yt-dlp.

class wyvern.plugins.ytdlp.YtdlpArtisan

Youtube Artisan.

Request the Download of a singular youtube video.

plugin_id: str = 'youtube'

ID of the plugin to use

Should be in kebab-case. Will be the name of the folder files are output into. The name may be shared with Artisans, but should only be shared with one Factory.

request_job(_: Manager, job_str: str) Job

Create the job object.

Todo:

Allow for options to be specified alongside the URL as either a JSON object or additional URL-encoded parameters

Parameters:

job_str – The URL of the video to download.

class wyvern.plugins.ytdlp.YtdlpJob(url: str, name: str | None = None, **kwargs: dict)

Create a job that is executed by yt-dlp.

Parameters:
  • url – The URL of the video to download

  • name – The name to show in the UI - Will get overridden in meth:progress_callback

  • kwargs – Additional parameters to add.

do_download(_: Manager) None

Run the download job.

progress_callback(data: dict) None

Update state from job progress.

should_skip(_: Manager) bool

Return True as yt-dlp will handle this checking for us.