]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/env python | |
2 | # coding: utf-8 | |
3 | ||
4 | from setuptools import setup, Command, find_packages | |
5 | import os.path | |
6 | import warnings | |
7 | import sys | |
8 | from distutils.spawn import spawn | |
9 | ||
10 | ||
11 | # Get the version from yt_dlp/version.py without importing the package | |
12 | exec(compile(open('yt_dlp/version.py').read(), | |
13 | 'yt_dlp/version.py', 'exec')) | |
14 | ||
15 | ||
16 | DESCRIPTION = 'Command-line program to download videos from YouTube.com and many other other video platforms.' | |
17 | ||
18 | LONG_DESCRIPTION = '\n\n'.join(( | |
19 | 'Official repository: <https://github.com/yt-dlp/yt-dlp>', | |
20 | '**PS**: Many links in this document will not work since this is a copy of the README.md from Github', | |
21 | open("README.md", "r", encoding="utf-8").read())) | |
22 | ||
23 | REQUIREMENTS = ['mutagen', 'pycryptodome'] | |
24 | ||
25 | ||
26 | if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe': | |
27 | print("inv") | |
28 | else: | |
29 | files_spec = [ | |
30 | ('etc/bash_completion.d', ['yt-dlp.bash-completion']), | |
31 | ('etc/fish/completions', ['yt-dlp.fish']), | |
32 | ('share/doc/yt_dlp', ['README.txt']), | |
33 | ('share/man/man1', ['yt-dlp.1']) | |
34 | ] | |
35 | root = os.path.dirname(os.path.abspath(__file__)) | |
36 | data_files = [] | |
37 | for dirname, files in files_spec: | |
38 | resfiles = [] | |
39 | for fn in files: | |
40 | if not os.path.exists(fn): | |
41 | warnings.warn('Skipping file %s since it is not present. Type make to build all automatically generated files.' % fn) | |
42 | else: | |
43 | resfiles.append(fn) | |
44 | data_files.append((dirname, resfiles)) | |
45 | ||
46 | params = { | |
47 | 'data_files': data_files, | |
48 | } | |
49 | params['entry_points'] = {'console_scripts': ['yt-dlp = yt_dlp:main']} | |
50 | ||
51 | ||
52 | class build_lazy_extractors(Command): | |
53 | description = 'Build the extractor lazy loading module' | |
54 | user_options = [] | |
55 | ||
56 | def initialize_options(self): | |
57 | pass | |
58 | ||
59 | def finalize_options(self): | |
60 | pass | |
61 | ||
62 | def run(self): | |
63 | spawn( | |
64 | [sys.executable, 'devscripts/make_lazy_extractors.py', 'yt_dlp/extractor/lazy_extractors.py'], | |
65 | dry_run=self.dry_run, | |
66 | ) | |
67 | ||
68 | ||
69 | packages = find_packages(exclude=("youtube_dl", "test", "ytdlp_plugins")) | |
70 | ||
71 | setup( | |
72 | name="yt-dlp", | |
73 | version=__version__, | |
74 | maintainer="pukkandan", | |
75 | maintainer_email="pukkandan.ytdlp@gmail.com", | |
76 | description=DESCRIPTION, | |
77 | long_description=LONG_DESCRIPTION, | |
78 | long_description_content_type="text/markdown", | |
79 | url="https://github.com/yt-dlp/yt-dlp", | |
80 | packages=packages, | |
81 | install_requires=REQUIREMENTS, | |
82 | project_urls={ | |
83 | 'Documentation': 'https://github.com/yt-dlp/yt-dlp#yt-dlp', | |
84 | 'Source': 'https://github.com/yt-dlp/yt-dlp', | |
85 | 'Tracker': 'https://github.com/yt-dlp/yt-dlp/issues', | |
86 | #'Funding': 'https://donate.pypi.org', | |
87 | }, | |
88 | classifiers=[ | |
89 | "Topic :: Multimedia :: Video", | |
90 | "Development Status :: 5 - Production/Stable", | |
91 | "Environment :: Console", | |
92 | "Programming Language :: Python", | |
93 | "Programming Language :: Python :: 2", | |
94 | "Programming Language :: Python :: 2.6", | |
95 | "Programming Language :: Python :: 2.7", | |
96 | "Programming Language :: Python :: 3", | |
97 | "Programming Language :: Python :: 3.2", | |
98 | "Programming Language :: Python :: 3.3", | |
99 | "Programming Language :: Python :: 3.4", | |
100 | "Programming Language :: Python :: 3.5", | |
101 | "Programming Language :: Python :: 3.6", | |
102 | "Programming Language :: Python :: 3.7", | |
103 | "Programming Language :: Python :: 3.8", | |
104 | "Programming Language :: Python :: Implementation", | |
105 | "Programming Language :: Python :: Implementation :: CPython", | |
106 | "Programming Language :: Python :: Implementation :: IronPython", | |
107 | "Programming Language :: Python :: Implementation :: Jython", | |
108 | "Programming Language :: Python :: Implementation :: PyPy", | |
109 | "License :: Public Domain", | |
110 | "Operating System :: OS Independent", | |
111 | ], | |
112 | python_requires='>=2.6', | |
113 | ||
114 | cmdclass={'build_lazy_extractors': build_lazy_extractors}, | |
115 | **params | |
116 | ) |