config.json 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "type": "object",
  4. "additionalProperties": false,
  5. "properties": {
  6. "YTDLP_ENABLED": {
  7. "type": "boolean",
  8. "default": true,
  9. "x-aliases": [
  10. "MEDIA_ENABLED",
  11. "SAVE_MEDIA",
  12. "USE_MEDIA",
  13. "USE_YTDLP",
  14. "FETCH_MEDIA",
  15. "SAVE_YTDLP"
  16. ],
  17. "description": "Enable video/audio downloading with yt-dlp"
  18. },
  19. "YTDLP_BINARY": {
  20. "type": "string",
  21. "default": "yt-dlp",
  22. "x-aliases": ["YOUTUBEDL_BINARY", "YOUTUBE_DL_BINARY"],
  23. "description": "Path to yt-dlp binary"
  24. },
  25. "YTDLP_NODE_BINARY": {
  26. "type": "string",
  27. "default": "node",
  28. "x-fallback": "NODE_BINARY",
  29. "description": "Path to Node.js binary for yt-dlp JS runtime"
  30. },
  31. "YTDLP_TIMEOUT": {
  32. "type": "integer",
  33. "default": 3600,
  34. "minimum": 30,
  35. "x-fallback": "TIMEOUT",
  36. "x-aliases": ["MEDIA_TIMEOUT"],
  37. "description": "Timeout for yt-dlp downloads in seconds"
  38. },
  39. "YTDLP_COOKIES_FILE": {
  40. "type": "string",
  41. "default": "",
  42. "x-fallback": "COOKIES_FILE",
  43. "description": "Path to cookies file"
  44. },
  45. "YTDLP_MAX_SIZE": {
  46. "type": "string",
  47. "default": "750m",
  48. "pattern": "^\\d+[kmgKMG]?$",
  49. "x-aliases": ["MEDIA_MAX_SIZE"],
  50. "description": "Maximum file size for yt-dlp downloads"
  51. },
  52. "YTDLP_CHECK_SSL_VALIDITY": {
  53. "type": "boolean",
  54. "default": true,
  55. "x-fallback": "CHECK_SSL_VALIDITY",
  56. "description": "Whether to verify SSL certificates"
  57. },
  58. "YTDLP_ARGS": {
  59. "type": "array",
  60. "items": { "type": "string" },
  61. "default": [
  62. "--restrict-filenames",
  63. "--trim-filenames=128",
  64. "--write-description",
  65. "--write-info-json",
  66. "--write-thumbnail",
  67. "--write-sub",
  68. "--write-auto-subs",
  69. "--convert-subs=srt",
  70. "--yes-playlist",
  71. "--continue",
  72. "--no-abort-on-error",
  73. "--ignore-errors",
  74. "--geo-bypass",
  75. "--add-metadata",
  76. "--no-progress",
  77. "--remote-components=ejs:github",
  78. "-o",
  79. "%(title)s.%(ext)s"
  80. ],
  81. "x-aliases": ["YTDLP_DEFAULT_ARGS"],
  82. "description": "Default yt-dlp arguments"
  83. },
  84. "YTDLP_ARGS_EXTRA": {
  85. "type": "array",
  86. "items": { "type": "string" },
  87. "default": [],
  88. "x-aliases": ["YTDLP_EXTRA_ARGS"],
  89. "description": "Extra arguments to append to yt-dlp command"
  90. }
  91. }
  92. }