ytptube/app/schema/conditions.json

58 lines
1.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ytptube.app/schemas/conditions.json",
"title": "YTPTube Download Conditions",
"description": "Schema describing conditional rules evaluated against yt-dlp info dicts.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"name",
"filter"
],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the condition (UUID)."
},
"name": {
"type": "string",
"description": "Human-readable name for the condition."
},
"filter": {
"type": "string",
"description": "Filter expression to evaluate against info dict."
},
"cli": {
"type": "string",
"description": "yt-dlp CLI fragment to append if matched.",
"default": ""
},
"extras": {
"type": "object",
"description": "Any extra data to store with the condition.",
"default": {}
}
},
"examples": [
{
"id": "a2b3c4d5-6789-2345-0bcd-ef1234567890",
"name": "Long Videos",
"filter": "duration>3600",
"extras": {
"ignore_download": true
}
},
{
"id": "b3c4d5e6-7890-3456-1cde-f23456789012",
"name": "Use Audio Preset for Music",
"filter": "categories~='Music'",
"extras": {
"set_preset": "audio-only"
}
}
]
}
}