pyproject.toml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. [build-system]
  2. requires = ["hatchling"]
  3. build-backend = "hatchling.build"
  4. [project]
  5. name = "yt-dlp"
  6. maintainers = [
  7. {name = "pukkandan", email = "pukkandan.ytdlp@gmail.com"},
  8. {name = "Grub4K", email = "contact@grub4k.xyz"},
  9. {name = "bashonly", email = "bashonly@protonmail.com"},
  10. {name = "coletdjnz", email = "coletdjnz@protonmail.com"},
  11. ]
  12. description = "A feature-rich command-line audio/video downloader"
  13. readme = "README.md"
  14. requires-python = ">=3.8"
  15. keywords = [
  16. "youtube-dl",
  17. "video-downloader",
  18. "youtube-downloader",
  19. "sponsorblock",
  20. "youtube-dlc",
  21. "yt-dlp",
  22. ]
  23. license = {file = "LICENSE"}
  24. classifiers = [
  25. "Topic :: Multimedia :: Video",
  26. "Development Status :: 5 - Production/Stable",
  27. "Environment :: Console",
  28. "Programming Language :: Python",
  29. "Programming Language :: Python :: 3 :: Only",
  30. "Programming Language :: Python :: 3.8",
  31. "Programming Language :: Python :: 3.9",
  32. "Programming Language :: Python :: 3.10",
  33. "Programming Language :: Python :: 3.11",
  34. "Programming Language :: Python :: 3.12",
  35. "Programming Language :: Python :: Implementation",
  36. "Programming Language :: Python :: Implementation :: CPython",
  37. "Programming Language :: Python :: Implementation :: PyPy",
  38. "License :: OSI Approved :: The Unlicense (Unlicense)",
  39. "Operating System :: OS Independent",
  40. ]
  41. dynamic = ["version"]
  42. dependencies = [
  43. "brotli; implementation_name=='cpython'",
  44. "brotlicffi; implementation_name!='cpython'",
  45. "certifi",
  46. "mutagen",
  47. "pycryptodomex",
  48. "requests>=2.31.0,<3",
  49. "urllib3>=1.26.17,<3",
  50. "websockets>=12.0",
  51. ]
  52. [project.optional-dependencies]
  53. default = []
  54. curl_cffi = ["curl-cffi==0.5.10; implementation_name=='cpython'"]
  55. secretstorage = [
  56. "cffi",
  57. "secretstorage",
  58. ]
  59. build = [
  60. "build",
  61. "hatchling",
  62. "pip",
  63. "wheel",
  64. ]
  65. dev = [
  66. "flake8",
  67. "isort",
  68. "pytest",
  69. ]
  70. pyinstaller = [
  71. "pyinstaller>=6.3; sys_platform!='darwin'",
  72. "pyinstaller==5.13.2; sys_platform=='darwin'", # needed for curl_cffi
  73. ]
  74. py2exe = ["py2exe>=0.12"]
  75. [project.urls]
  76. Documentation = "https://github.com/yt-dlp/yt-dlp#readme"
  77. Repository = "https://github.com/yt-dlp/yt-dlp"
  78. Tracker = "https://github.com/yt-dlp/yt-dlp/issues"
  79. Funding = "https://github.com/yt-dlp/yt-dlp/blob/master/Collaborators.md#collaborators"
  80. [project.scripts]
  81. yt-dlp = "yt_dlp:main"
  82. [project.entry-points.pyinstaller40]
  83. hook-dirs = "yt_dlp.__pyinstaller:get_hook_dirs"
  84. [tool.hatch.build.targets.sdist]
  85. include = [
  86. "/yt_dlp",
  87. "/devscripts",
  88. "/test",
  89. "/.gitignore", # included by default, needed for auto-excludes
  90. "/Changelog.md",
  91. "/LICENSE", # included as license
  92. "/pyproject.toml", # included by default
  93. "/README.md", # included as readme
  94. "/setup.cfg",
  95. "/supportedsites.md",
  96. ]
  97. artifacts = [
  98. "/yt_dlp/extractor/lazy_extractors.py",
  99. "/completions",
  100. "/AUTHORS", # included by default
  101. "/README.txt",
  102. "/yt-dlp.1",
  103. ]
  104. [tool.hatch.build.targets.wheel]
  105. packages = ["yt_dlp"]
  106. artifacts = ["/yt_dlp/extractor/lazy_extractors.py"]
  107. [tool.hatch.build.targets.wheel.shared-data]
  108. "completions/bash/yt-dlp" = "share/bash-completion/completions/yt-dlp"
  109. "completions/zsh/_yt-dlp" = "share/zsh/site-functions/_yt-dlp"
  110. "completions/fish/yt-dlp.fish" = "share/fish/vendor_completions.d/yt-dlp.fish"
  111. "README.txt" = "share/doc/yt_dlp/README.txt"
  112. "yt-dlp.1" = "share/man/man1/yt-dlp.1"
  113. [tool.hatch.version]
  114. path = "yt_dlp/version.py"
  115. pattern = "_pkg_version = '(?P<version>[^']+)'"