youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

setup.py (4621B)


      1 #!/usr/bin/env python
      2 # coding: utf-8
      3 
      4 from __future__ import print_function
      5 
      6 import os.path
      7 import warnings
      8 import sys
      9 
     10 try:
     11     from setuptools import setup, Command
     12     setuptools_available = True
     13 except ImportError:
     14     from distutils.core import setup, Command
     15     setuptools_available = False
     16 from distutils.spawn import spawn
     17 
     18 try:
     19     # This will create an exe that needs Microsoft Visual C++ 2008
     20     # Redistributable Package
     21     import py2exe
     22 except ImportError:
     23     if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':
     24         print('Cannot import py2exe', file=sys.stderr)
     25         exit(1)
     26 
     27 py2exe_options = {
     28     'bundle_files': 1,
     29     'compressed': 1,
     30     'optimize': 2,
     31     'dist_dir': '.',
     32     'dll_excludes': ['w9xpopen.exe', 'crypt32.dll'],
     33 }
     34 
     35 # Get the version from youtube_dl/version.py without importing the package
     36 exec(compile(open('youtube_dl/version.py').read(),
     37              'youtube_dl/version.py', 'exec'))
     38 
     39 DESCRIPTION = 'YouTube video downloader'
     40 LONG_DESCRIPTION = 'Command-line program to download videos from YouTube.com and other video sites'
     41 
     42 py2exe_console = [{
     43     'script': './youtube_dl/__main__.py',
     44     'dest_base': 'youtube-dl',
     45     'version': __version__,
     46     'description': DESCRIPTION,
     47     'comments': LONG_DESCRIPTION,
     48     'product_name': 'youtube-dl',
     49     'product_version': __version__,
     50 }]
     51 
     52 py2exe_params = {
     53     'console': py2exe_console,
     54     'options': {'py2exe': py2exe_options},
     55     'zipfile': None
     56 }
     57 
     58 if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':
     59     params = py2exe_params
     60 else:
     61     files_spec = [
     62         ('etc/bash_completion.d', ['youtube-dl.bash-completion']),
     63         ('etc/fish/completions', ['youtube-dl.fish']),
     64         ('share/doc/youtube_dl', ['README.txt']),
     65         ('share/man/man1', ['youtube-dl.1'])
     66     ]
     67     root = os.path.dirname(os.path.abspath(__file__))
     68     data_files = []
     69     for dirname, files in files_spec:
     70         resfiles = []
     71         for fn in files:
     72             if not os.path.exists(fn):
     73                 warnings.warn('Skipping file %s since it is not present. Type  make  to build all automatically generated files.' % fn)
     74             else:
     75                 resfiles.append(fn)
     76         data_files.append((dirname, resfiles))
     77 
     78     params = {
     79         'data_files': data_files,
     80     }
     81     if setuptools_available:
     82         params['entry_points'] = {'console_scripts': ['youtube-dl = youtube_dl:main']}
     83     else:
     84         params['scripts'] = ['bin/youtube-dl']
     85 
     86 class build_lazy_extractors(Command):
     87     description = 'Build the extractor lazy loading module'
     88     user_options = []
     89 
     90     def initialize_options(self):
     91         pass
     92 
     93     def finalize_options(self):
     94         pass
     95 
     96     def run(self):
     97         spawn(
     98             [sys.executable, 'devscripts/make_lazy_extractors.py', 'youtube_dl/extractor/lazy_extractors.py'],
     99             dry_run=self.dry_run,
    100         )
    101 
    102 setup(
    103     name='youtube_dl',
    104     version=__version__,
    105     description=DESCRIPTION,
    106     long_description=LONG_DESCRIPTION,
    107     url='https://github.com/ytdl-org/youtube-dl',
    108     author='Ricardo Garcia',
    109     author_email='ytdl@yt-dl.org',
    110     maintainer='Sergey M.',
    111     maintainer_email='dstftw@gmail.com',
    112     license='Unlicense',
    113     packages=[
    114         'youtube_dl',
    115         'youtube_dl.extractor', 'youtube_dl.downloader',
    116         'youtube_dl.postprocessor'],
    117 
    118     # Provokes warning on most systems (why?!)
    119     # test_suite = 'nose.collector',
    120     # test_requires = ['nosetest'],
    121 
    122     classifiers=[
    123         'Topic :: Multimedia :: Video',
    124         'Development Status :: 5 - Production/Stable',
    125         'Environment :: Console',
    126         'License :: Public Domain',
    127         'Programming Language :: Python',
    128         'Programming Language :: Python :: 2',
    129         'Programming Language :: Python :: 2.6',
    130         'Programming Language :: Python :: 2.7',
    131         'Programming Language :: Python :: 3',
    132         'Programming Language :: Python :: 3.2',
    133         'Programming Language :: Python :: 3.3',
    134         'Programming Language :: Python :: 3.4',
    135         'Programming Language :: Python :: 3.5',
    136         'Programming Language :: Python :: 3.6',
    137         'Programming Language :: Python :: 3.7',
    138         'Programming Language :: Python :: 3.8',
    139         'Programming Language :: Python :: Implementation',
    140         'Programming Language :: Python :: Implementation :: CPython',
    141         'Programming Language :: Python :: Implementation :: IronPython',
    142         'Programming Language :: Python :: Implementation :: Jython',
    143         'Programming Language :: Python :: Implementation :: PyPy',
    144     ],
    145 
    146     cmdclass={'build_lazy_extractors': build_lazy_extractors},
    147     **params
    148 )