]> jfr.im git - yt-dlp.git/blob - pyproject.toml
[build:Makefile] Fix man pages generated by `pandoc>=3` (#7047)
[yt-dlp.git] / pyproject.toml
1 [build-system]
2 requires = ["hatchling"]
3 build-backend = "hatchling.build"
4
5 [project]
6 name = "yt-dlp"
7 maintainers = [
8 {name = "pukkandan", email = "pukkandan.ytdlp@gmail.com"},
9 {name = "Grub4K", email = "contact@grub4k.xyz"},
10 {name = "bashonly", email = "bashonly@protonmail.com"},
11 ]
12 description = "A youtube-dl fork with additional features and patches"
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
53 [project.optional-dependencies]
54 secretstorage = [
55 "cffi",
56 "secretstorage",
57 ]
58 build = [
59 "build",
60 "hatchling",
61 "pip",
62 "wheel",
63 ]
64 dev = [
65 "flake8",
66 "isort",
67 "pytest",
68 ]
69 pyinstaller = ["pyinstaller>=6.3"]
70 py2exe = ["py2exe>=0.12"]
71
72 [project.urls]
73 Documentation = "https://github.com/yt-dlp/yt-dlp#readme"
74 Repository = "https://github.com/yt-dlp/yt-dlp"
75 Tracker = "https://github.com/yt-dlp/yt-dlp/issues"
76 Funding = "https://github.com/yt-dlp/yt-dlp/blob/master/Collaborators.md#collaborators"
77
78 [project.scripts]
79 yt-dlp = "yt_dlp:main"
80
81 [project.entry-points.pyinstaller40]
82 hook-dirs = "yt_dlp.__pyinstaller:get_hook_dirs"
83
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 exclude = ["/yt_dlp/__pyinstaller"]
98 artifacts = [
99 "/yt_dlp/extractor/lazy_extractors.py",
100 "/completions",
101 "/AUTHORS", # included by default
102 "/README.txt",
103 "/yt-dlp.1",
104 ]
105
106 [tool.hatch.build.targets.wheel]
107 packages = ["yt_dlp"]
108 exclude = ["/yt_dlp/__pyinstaller"]
109 artifacts = ["/yt_dlp/extractor/lazy_extractors.py"]
110
111 [tool.hatch.build.targets.wheel.shared-data]
112 "completions/bash/yt-dlp" = "share/bash-completion/completions/yt-dlp"
113 "completions/zsh/_yt-dlp" = "share/zsh/site-functions/_yt-dlp"
114 "completions/fish/yt-dlp.fish" = "share/fish/vendor_completions.d/yt-dlp.fish"
115 "README.txt" = "share/doc/yt_dlp/README.txt"
116 "yt-dlp.1" = "share/man/man1/yt-dlp.1"
117
118 [tool.hatch.version]
119 path = "yt_dlp/version.py"
120 pattern = "_pkg_version = '(?P<version>[^']+)'"