89 lines
2.7 KiB
JSON
89 lines
2.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://ytptube.app/schemas/tasks.json",
|
|
"title": "YTPTube Scheduled Tasks",
|
|
"description": "Schema describing recurring download tasks stored in tasks.json.",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/task"
|
|
},
|
|
"definitions": {
|
|
"task": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"url"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"format": "uuid",
|
|
"description": "Unique identifier for the task (UUIDv4)."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"description": "Human-friendly task label used throughout the UI."
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"pattern": "^https?://",
|
|
"description": "Playlist or channel URL monitored by the task."
|
|
},
|
|
"folder": {
|
|
"type": "string",
|
|
"description": "Optional download folder override for this task.",
|
|
"default": ""
|
|
},
|
|
"preset": {
|
|
"type": "string",
|
|
"description": "Preset name to apply; falls back to the global default when omitted.",
|
|
"default": ""
|
|
},
|
|
"timer": {
|
|
"type": "string",
|
|
"description": "Cron expression executed by the scheduler (five or six space-separated fields).",
|
|
"default": ""
|
|
},
|
|
"template": {
|
|
"type": "string",
|
|
"description": "Output filename template override for downloads created by this task.",
|
|
"default": ""
|
|
},
|
|
"cli": {
|
|
"type": "string",
|
|
"description": "Additional yt-dlp arguments appended to the download request.",
|
|
"default": ""
|
|
},
|
|
"auto_start": {
|
|
"type": "boolean",
|
|
"description": "Automatically queue new items discovered by the task.",
|
|
"default": true
|
|
},
|
|
"handler_enabled": {
|
|
"type": "boolean",
|
|
"description": "Controls whether the matched handler remains enabled for this task.",
|
|
"default": true
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "Controls whether the task is enabled and will be executed by the scheduler.",
|
|
"default": true
|
|
}
|
|
},
|
|
"examples": [
|
|
{
|
|
"id": "4d9be675-ecb8-4b42-9a84-8cee71a7a2e2",
|
|
"name": "Weekly playlist sync",
|
|
"url": "https://www.youtube.com/playlist?list=PL12345",
|
|
"preset": "default",
|
|
"timer": "0 */6 * * *",
|
|
"auto_start": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|