aboutsummaryrefslogtreecommitdiffstats
path: root/devscripts
diff options
context:
space:
mode:
Diffstat (limited to 'devscripts')
-rw-r--r--devscripts/create-github-release.py112
-rw-r--r--devscripts/gh-pages.unused/add-version.py43
-rw-r--r--devscripts/gh-pages.unused/generate-download.py22
-rw-r--r--devscripts/gh-pages.unused/sign-versions.py34
-rw-r--r--devscripts/gh-pages.unused/update-copyright.py21
-rw-r--r--devscripts/gh-pages.unused/update-feed.py76
-rw-r--r--devscripts/gh-pages.unused/update-sites.py37
-rwxr-xr-xdevscripts/make_contributing.py2
-rw-r--r--devscripts/make_issue_template.py29
-rwxr-xr-xdevscripts/make_readme.py6
-rw-r--r--devscripts/prepare_manpage.py2
-rwxr-xr-xdevscripts/release.sh143
-rw-r--r--devscripts/show-downloads-statistics.py49
-rw-r--r--devscripts/update-formulae.py37
-rw-r--r--devscripts/update-version.py42
-rwxr-xr-xdevscripts/wine-py2exe.sh58
16 files changed, 5 insertions, 708 deletions
diff --git a/devscripts/create-github-release.py b/devscripts/create-github-release.py
deleted file mode 100644
index 53b3e0f48..000000000
--- a/devscripts/create-github-release.py
+++ /dev/null
@@ -1,112 +0,0 @@
-# Unused
-
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import io
-import json
-import mimetypes
-import netrc
-import optparse
-import os
-import re
-import sys
-
-sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-
-from yt_dlp.compat import (
- compat_basestring,
- compat_getpass,
- compat_print,
- compat_urllib_request,
-)
-from yt_dlp.utils import (
- make_HTTPS_handler,
- sanitized_Request,
-)
-
-
-class GitHubReleaser(object):
- _API_URL = 'https://api.github.com/repos/ytdl-org/youtube-dl/releases'
- _UPLOADS_URL = 'https://uploads.github.com/repos/ytdl-org/youtube-dl/releases/%s/assets?name=%s'
- _NETRC_MACHINE = 'github.com'
-
- def __init__(self, debuglevel=0):
- self._init_github_account()
- https_handler = make_HTTPS_handler({}, debuglevel=debuglevel)
- self._opener = compat_urllib_request.build_opener(https_handler)
-
- def _init_github_account(self):
- try:
- info = netrc.netrc().authenticators(self._NETRC_MACHINE)
- if info is not None:
- self._token = info[2]
- compat_print('Using GitHub credentials found in .netrc...')
- return
- else:
- compat_print('No GitHub credentials found in .netrc')
- except (IOError, netrc.NetrcParseError):
- compat_print('Unable to parse .netrc')
- self._token = compat_getpass(
- 'Type your GitHub PAT (personal access token) and press [Return]: ')
-
- def _call(self, req):
- if isinstance(req, compat_basestring):
- req = sanitized_Request(req)
- req.add_header('Authorization', 'token %s' % self._token)
- response = self._opener.open(req).read().decode('utf-8')
- return json.loads(response)
-
- def list_releases(self):
- return self._call(self._API_URL)
-
- def create_release(self, tag_name, name=None, body='', draft=False, prerelease=False):
- data = {
- 'tag_name': tag_name,
- 'target_commitish': 'master',
- 'name': name,
- 'body': body,
- 'draft': draft,
- 'prerelease': prerelease,
- }
- req = sanitized_Request(self._API_URL, json.dumps(data).encode('utf-8'))
- return self._call(req)
-
- def create_asset(self, release_id, asset):
- asset_name = os.path.basename(asset)
- url = self._UPLOADS_URL % (release_id, asset_name)
- # Our files are small enough to be loaded directly into memory.
- data = open(asset, 'rb').read()
- req = sanitized_Request(url, data)
- mime_type, _ = mimetypes.guess_type(asset_name)
- req.add_header('Content-Type', mime_type or 'application/octet-stream')
- return self._call(req)
-
-
-def main():
- parser = optparse.OptionParser(usage='%prog CHANGELOG VERSION BUILDPATH')
- options, args = parser.parse_args()
- if len(args) != 3:
- parser.error('Expected a version and a build directory')
-
- changelog_file, version, build_path = args
-
- with io.open(changelog_file, encoding='utf-8') as inf:
- changelog = inf.read()
-
- mobj = re.search(r'(?s)version %s\n{2}(.+?)\n{3}' % version, changelog)
- body = mobj.group(1) if mobj else ''
-
- releaser = GitHubReleaser()
-
- new_release = releaser.create_release(
- version, name='yt-dlp %s' % version, body=body)
- release_id = new_release['id']
-
- for asset in os.listdir(build_path):
- compat_print('Uploading %s...' % asset)
- releaser.create_asset(release_id, os.path.join(build_path, asset))
-
-
-if __name__ == '__main__':
- main()
diff --git a/devscripts/gh-pages.unused/add-version.py b/devscripts/gh-pages.unused/add-version.py
deleted file mode 100644
index 9ea01374d..000000000
--- a/devscripts/gh-pages.unused/add-version.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import json
-import sys
-import hashlib
-import os.path
-
-
-if len(sys.argv) <= 1:
- print('Specify the version number as parameter')
- sys.exit()
-version = sys.argv[1]
-
-with open('update/LATEST_VERSION', 'w') as f:
- f.write(version)
-
-versions_info = json.load(open('update/versions.json'))
-if 'signature' in versions_info:
- del versions_info['signature']
-
-new_version = {}
-
-filenames = {
- 'bin': 'yt-dlp',
- 'exe': 'yt-dlp.exe',
- 'tar': 'yt-dlp-%s.tar.gz' % version}
-build_dir = os.path.join('..', '..', 'build', version)
-for key, filename in filenames.items():
- url = 'https://yt-dl.org/downloads/%s/%s' % (version, filename)
- fn = os.path.join(build_dir, filename)
- with open(fn, 'rb') as f:
- data = f.read()
- if not data:
- raise ValueError('File %s is empty!' % fn)
- sha256sum = hashlib.sha256(data).hexdigest()
- new_version[key] = (url, sha256sum)
-
-versions_info['versions'][version] = new_version
-versions_info['latest'] = version
-
-with open('update/versions.json', 'w') as jsonf:
- json.dump(versions_info, jsonf, indent=4, sort_keys=True)
diff --git a/devscripts/gh-pages.unused/generate-download.py b/devscripts/gh-pages.unused/generate-download.py
deleted file mode 100644
index a873d32ee..000000000
--- a/devscripts/gh-pages.unused/generate-download.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import json
-
-versions_info = json.load(open('update/versions.json'))
-version = versions_info['latest']
-version_dict = versions_info['versions'][version]
-
-# Read template page
-with open('download.html.in', 'r', encoding='utf-8') as tmplf:
- template = tmplf.read()
-
-template = template.replace('@PROGRAM_VERSION@', version)
-template = template.replace('@PROGRAM_URL@', version_dict['bin'][0])
-template = template.replace('@PROGRAM_SHA256SUM@', version_dict['bin'][1])
-template = template.replace('@EXE_URL@', version_dict['exe'][0])
-template = template.replace('@EXE_SHA256SUM@', version_dict['exe'][1])
-template = template.replace('@TAR_URL@', version_dict['tar'][0])
-template = template.replace('@TAR_SHA256SUM@', version_dict['tar'][1])
-with open('download.html', 'w', encoding='utf-8') as dlf:
- dlf.write(template)
diff --git a/devscripts/gh-pages.unused/sign-versions.py b/devscripts/gh-pages.unused/sign-versions.py
deleted file mode 100644
index fa389c358..000000000
--- a/devscripts/gh-pages.unused/sign-versions.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals, with_statement
-
-import rsa
-import json
-from binascii import hexlify
-
-try:
- input = raw_input
-except NameError:
- pass
-
-versions_info = json.load(open('update/versions.json'))
-if 'signature' in versions_info:
- del versions_info['signature']
-
-print('Enter the PKCS1 private key, followed by a blank line:')
-privkey = b''
-while True:
- try:
- line = input()
- except EOFError:
- break
- if line == '':
- break
- privkey += line.encode('ascii') + b'\n'
-privkey = rsa.PrivateKey.load_pkcs1(privkey)
-
-signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).encode('utf-8'), privkey, 'SHA-256')).decode()
-print('signature: ' + signature)
-
-versions_info['signature'] = signature
-with open('update/versions.json', 'w') as versionsf:
- json.dump(versions_info, versionsf, indent=4, sort_keys=True)
diff --git a/devscripts/gh-pages.unused/update-copyright.py b/devscripts/gh-pages.unused/update-copyright.py
deleted file mode 100644
index e122d0283..000000000
--- a/devscripts/gh-pages.unused/update-copyright.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# coding: utf-8
-
-from __future__ import with_statement, unicode_literals
-
-import datetime
-import glob
-import io # For Python 2 compatibility
-import os
-import re
-
-year = str(datetime.datetime.now().year)
-for fn in glob.glob('*.html*'):
- with io.open(fn, encoding='utf-8') as f:
- content = f.read()
- newc = re.sub(r'(?P<copyright>Copyright © 2011-)(?P<year>[0-9]{4})', 'Copyright © 2011-' + year, content)
- if content != newc:
- tmpFn = fn + '.part'
- with io.open(tmpFn, 'wt', encoding='utf-8') as outf:
- outf.write(newc)
- os.rename(tmpFn, fn)
diff --git a/devscripts/gh-pages.unused/update-feed.py b/devscripts/gh-pages.unused/update-feed.py
deleted file mode 100644
index c9f2fdb07..000000000
--- a/devscripts/gh-pages.unused/update-feed.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import datetime
-import io
-import json
-import textwrap
-
-
-atom_template = textwrap.dedent("""\
- <?xml version="1.0" encoding="utf-8"?>
- <feed xmlns="http://www.w3.org/2005/Atom">
- <link rel="self" href="http://ytdl-org.github.io/youtube-dl/update/releases.atom" />
- <title>yt-dlp releases</title>
- <id>https://yt-dl.org/feed/yt-dlp-updates-feed</id>
- <updated>@TIMESTAMP@</updated>
- @ENTRIES@
- </feed>""")
-
-entry_template = textwrap.dedent("""
- <entry>
- <id>https://yt-dl.org/feed/yt-dlp-updates-feed/yt-dlp-@VERSION@</id>
- <title>New version @VERSION@</title>
- <link href="http://ytdl-org.github.io/yt-dlp" />
- <content type="xhtml">
- <div xmlns="http://www.w3.org/1999/xhtml">
- Downloads available at <a href="https://yt-dl.org/downloads/@VERSION@/">https://yt-dl.org/downloads/@VERSION@/</a>
- </div>
- </content>
- <author>
- <name>The yt-dlp maintainers</name>
- </author>
- <updated>@TIMESTAMP@</updated>
- </entry>
- """)
-
-now = datetime.datetime.now()
-now_iso = now.isoformat() + 'Z'
-
-atom_template = atom_template.replace('@TIMESTAMP@', now_iso)
-
-versions_info = json.load(open('update/versions.json'))
-versions = list(versions_info['versions'].keys())
-versions.sort()
-
-entries = []
-for v in versions:
- fields = v.split('.')
- year, month, day = map(int, fields[:3])
- faked = 0
- patchlevel = 0
- while True:
- try:
- datetime.date(year, month, day)
- except ValueError:
- day -= 1
- faked += 1
- assert day > 0
- continue
- break
- if len(fields) >= 4:
- try:
- patchlevel = int(fields[3])
- except ValueError:
- patchlevel = 1
- timestamp = '%04d-%02d-%02dT00:%02d:%02dZ' % (year, month, day, faked, patchlevel)
-
- entry = entry_template.replace('@TIMESTAMP@', timestamp)
- entry = entry.replace('@VERSION@', v)
- entries.append(entry)
-
-entries_str = textwrap.indent(''.join(entries), '\t')
-atom_template = atom_template.replace('@ENTRIES@', entries_str)
-
-with io.open('update/releases.atom', 'w', encoding='utf-8') as atom_file:
- atom_file.write(atom_template)
diff --git a/devscripts/gh-pages.unused/update-sites.py b/devscripts/gh-pages.unused/update-sites.py
deleted file mode 100644
index b53685fcc..000000000
--- a/devscripts/gh-pages.unused/update-sites.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import sys
-import os
-import textwrap
-
-# We must be able to import yt_dlp
-sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
-
-import yt_dlp
-
-
-def main():
- with open('supportedsites.html.in', 'r', encoding='utf-8') as tmplf:
- template = tmplf.read()
-
- ie_htmls = []
- for ie in yt_dlp.list_extractors(age_limit=None):
- ie_html = '<b>{}</b>'.format(ie.IE_NAME)
- ie_desc = getattr(ie, 'IE_DESC', None)
- if ie_desc is False:
- continue
- elif ie_desc is not None:
- ie_html += ': {}'.format(ie.IE_DESC)
- if not ie.working():
- ie_html += ' (Currently broken)'
- ie_htmls.append('<li>{}</li>'.format(ie_html))
-
- template = template.replace('@SITES@', textwrap.indent('\n'.join(ie_htmls), '\t'))
-
- with open('supportedsites.html', 'w', encoding='utf-8') as sitesf:
- sitesf.write(template)
-
-
-if __name__ == '__main__':
- main()
diff --git a/devscripts/make_contributing.py b/devscripts/make_contributing.py
index 6b1b8219c..8b3670d85 100755
--- a/devscripts/make_contributing.py
+++ b/devscripts/make_contributing.py
@@ -22,7 +22,7 @@ def main():
bug_text = re.search(
r'(?s)#\s*BUGS\s*[^\n]*\s*(.*?)#\s*COPYRIGHT', readme).group(1)
dev_text = re.search(
- r'(?s)(#\s*DEVELOPER INSTRUCTIONS.*?)#\s*EMBEDDING yt-dlp', readme).group(1)
+ r'(?s)(#\s*DEVELOPER INSTRUCTIONS.*?)#\s*EMBEDDING YT-DLP', readme).group(1)
out = bug_text + dev_text
diff --git a/devscripts/make_issue_template.py b/devscripts/make_issue_template.py
deleted file mode 100644
index 902059231..000000000
--- a/devscripts/make_issue_template.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import io
-import optparse
-
-
-def main():
- parser = optparse.OptionParser(usage='%prog INFILE OUTFILE')
- options, args = parser.parse_args()
- if len(args) != 2:
- parser.error('Expected an input and an output filename')
-
- infile, outfile = args
-
- with io.open(infile, encoding='utf-8') as inf:
- issue_template_tmpl = inf.read()
-
- # Get the version from yt_dlp/version.py without importing the package
- exec(compile(open('yt_dlp/version.py').read(),
- 'yt_dlp/version.py', 'exec'))
-
- out = issue_template_tmpl % {'version': locals()['__version__']}
-
- with io.open(outfile, 'w', encoding='utf-8') as outf:
- outf.write(out)
-
-if __name__ == '__main__':
- main()
diff --git a/devscripts/make_readme.py b/devscripts/make_readme.py
index 3f56af744..47d6d27b7 100755
--- a/devscripts/make_readme.py
+++ b/devscripts/make_readme.py
@@ -18,12 +18,12 @@ if isinstance(helptext, bytes):
with io.open(README_FILE, encoding='utf-8') as f:
oldreadme = f.read()
-header = oldreadme[:oldreadme.index('## General Options:')]
+header = oldreadme[:oldreadme.index('# OPTIONS')]
footer = oldreadme[oldreadme.index('# CONFIGURATION'):]
-options = helptext[helptext.index(' General Options:'):]
+options = helptext[helptext.index(' General Options:') + 19:]
options = re.sub(r'(?m)^ (\w.+)$', r'## \1', options)
-options = options + '\n'
+options = '# OPTIONS\n' + options + '\n'
with io.open(README_FILE, 'w', encoding='utf-8') as f:
f.write(header)
diff --git a/devscripts/prepare_manpage.py b/devscripts/prepare_manpage.py
index 6612723f7..10b0aec3e 100644
--- a/devscripts/prepare_manpage.py
+++ b/devscripts/prepare_manpage.py
@@ -9,7 +9,7 @@ import re
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
README_FILE = os.path.join(ROOT_DIR, 'README.md')
-PREFIX = r'''%yt-dlp(1)
+PREFIX = r'''%YT-DLP(1)
# NAME
diff --git a/devscripts/release.sh b/devscripts/release.sh
deleted file mode 100755
index 188b166e6..000000000
--- a/devscripts/release.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-# Unused
-
-#!/bin/bash
-
-# IMPORTANT: the following assumptions are made
-# * the GH repo is on the origin remote
-# * the gh-pages branch is named so locally
-# * the git config user.signingkey is properly set
-
-# You will need
-# pip install coverage nose rsa wheel
-
-# TODO
-# release notes
-# make hash on local files
-
-set -e
-
-skip_tests=true
-gpg_sign_commits=""
-buildserver='localhost:8142'
-
-while true
-do
-case "$1" in
- --run-tests)
- skip_tests=false
- shift
- ;;
- --gpg-sign-commits|-S)
- gpg_sign_commits="-S"
- shift
- ;;
- --buildserver)
- buildserver="$2"
- shift 2
- ;;
- --*)
- echo "ERROR: unknown option $1"
- exit 1
- ;;
- *)
- break
- ;;
-esac
-done
-
-if [ -z "$1" ]; then echo "ERROR: specify version number like this: $0 1994.09.06"; exit 1; fi
-version="$1"
-major_version=$(echo "$version" | sed -n 's#^\([0-9]*\.[0-9]*\.[0-9]*\).*#\1#p')
-if test "$major_version" '!=' "$(date '+%Y.%m.%d')"; then
- echo "$version does not start with today's date!"
- exit 1
-fi
-
-if [ ! -z "`git tag | grep "$version"`" ]; then echo 'ERROR: version already present'; exit 1; fi
-if [ ! -z "`git status --porcelain | grep -v CHANGELOG`" ]; then echo 'ERROR: the working directory is not clean; commit or stash changes'; exit 1; fi
-useless_files=$(find yt_dlp -type f -not -name '*.py')
-if [ ! -z "$useless_files" ]; then echo "ERROR: Non-.py files in yt_dlp: $useless_files"; exit 1; fi
-if [ ! -f "updates_key.pem" ]; then echo 'ERROR: updates_key.pem missing'; exit 1; fi
-if ! type pandoc >/dev/null 2>/dev/null; then echo 'ERROR: pandoc is missing'; exit 1; fi
-if ! python3 -c 'import rsa' 2>/dev/null; then echo 'ERROR: python3-rsa is missing'; exit 1; fi
-if ! python3 -c 'import wheel' 2>/dev/null; then echo 'ERROR: wheel is missing'; exit 1; fi
-
-read -p "Is Changelog up to date? (y/n) " -n 1
-if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi
-
-/bin/echo -e "\n### First of all, testing..."
-make clean
-if $skip_tests ; then
- echo 'SKIPPING TESTS'
-else
- nosetests --verbose --with-coverage --cover-package=yt_dlp --cover-html test --stop || exit 1
-fi
-
-/bin/echo -e "\n### Changing version in version.py..."
-sed -i "s/__version__ = '.*'/__version__ = '$version'/" yt_dlp/version.py
-
-/bin/echo -e "\n### Changing version in Changelog..."
-sed -i "s/<unreleased>/$version/" Changelog.md
-
-/bin/echo -e "\n### Committing documentation, templates and yt_dlp/version.py..."
-make README.md CONTRIBUTING.md issuetemplates supportedsites
-git add README.md CONTRIBUTING.md .github/ISSUE_TEMPLATE/1_broken_site.md .github/ISSUE_TEMPLATE/2_site_support_request.md .github/ISSUE_TEMPLATE/3_site_feature_request.md .github/ISSUE_TEMPLATE/4_bug_report.md .github/ISSUE_TEMPLATE/5_feature_request.md .github/ISSUE_TEMPLATE/6_question.md docs/supportedsites.md yt_dlp/version.py Changelog.md
-git commit $gpg_sign_commits -m "release $version"
-
-/bin/echo -e "\n### Now tagging, signing and pushing..."
-git tag -s -m "Release $version" "$version"
-git show "$version"
-read -p "Is it good, can I push? (y/n) " -n 1
-if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi
-echo
-MASTER=$(git rev-parse --abbrev-ref HEAD)
-git push origin $MASTER:master
-git push origin "$version"
-
-/bin/echo -e "\n### OK, now it is time to build the binaries..."
-REV=$(git rev-parse HEAD)
-make yt-dlp yt-dlp.tar.gz
-read -p "VM running? (y/n) " -n 1
-wget "http://$buildserver/build/ytdl-org/youtube-dl/yt-dlp.exe?rev=$REV" -O yt-dlp.exe
-mkdir -p "build/$version"
-mv yt-dlp yt-dlp.exe "build/$version"
-mv yt-dlp.tar.gz "build/$version/yt-dlp-$version.tar.gz"
-RELEASE_FILES="yt-dlp yt-dlp.exe yt-dlp-$version.tar.gz"
-(cd build/$version/ && md5sum $RELEASE_FILES > MD5SUMS)
-(cd build/$version/ && sha1sum $RELEASE_FILES > SHA1SUMS)
-(cd build/$version/ && sha256sum $RELEASE_FILES > SHA2-256SUMS)
-(cd build/$version/ && sha512sum $RELEASE_FILES > SHA2-512SUMS)
-
-/bin/echo -e "\n### Signing and uploading the new binaries to GitHub..."
-for f in $RELEASE_FILES; do gpg --passphrase-repeat 5 --detach-sig "build/$version/$f"; done
-
-ROOT=$(pwd)
-python devscripts/create-github-release.py Changelog.md $version "$ROOT/build/$version"
-
-ssh ytdl@yt-dl.org "sh html/update_latest.sh $version"
-
-/bin/echo -e "\n### Now switching to gh-pages..."
-git clone --branch gh-pages --single-branch . build/gh-pages
-(
- set -e
- ORIGIN_URL=$(git config --get remote.origin.url)
- cd build/gh-pages
- "$ROOT/devscripts/gh-pages/add-version.py" $version
- "$ROOT/devscripts/gh-pages/update-feed.py"
- "$ROOT/devscripts/gh-pages/sign-versions.py" < "$ROOT/updates_key.pem"
- "$ROOT/devscripts/gh-pages/generate-download.py"
- "$ROOT/devscripts/gh-pages/update-copyright.py"
- "$ROOT/devscripts/gh-pages/update-sites.py"
- git add *.html *.html.in update
- git commit $gpg_sign_commits -m "release $version"
- git push "$ROOT" gh-pages
- git push "$ORIGIN_URL" gh-pages
-)
-rm -rf build
-
-make pypi-files
-echo "Uploading to PyPi ..."
-python setup.py sdist bdist_wheel upload
-make clean
-
-/bin/echo -e "\n### DONE!"
diff --git a/devscripts/show-downloads-statistics.py b/devscripts/show-downloads-statistics.py
deleted file mode 100644
index 4855aa7c8..000000000
--- a/devscripts/show-downloads-statistics.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Unused
-
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import itertools
-import json
-import os
-import re
-import sys
-
-sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-
-from yt_dlp.compat import (
- compat_print,
- compat_urllib_request,
-)
-from yt_dlp.utils import format_bytes
-
-
-def format_size(bytes):
- return '%s (%d bytes)' % (format_bytes(bytes), bytes)
-
-
-total_bytes = 0
-
-for page in itertools.count(1):
- releases = json.loads(compat_urllib_request.urlopen(
- 'https://api.github.com/repos/ytdl-org/youtube-dl/releases?page=%s' % page
- ).read().decode('utf-8'))
-
- if not releases:
- break
-
- for release in releases:
- compat_print(release['name'])
- for asset in release['assets']:
- asset_name = asset['name']
- total_bytes += asset['download_count'] * asset['size']
- if all(not re.match(p, asset_name) for p in (
- r'^yt-dlp$',
- r'^yt-dlp-\d{4}\.\d{2}\.\d{2}(?:\.\d+)?\.tar\.gz$',
- r'^yt-dlp\.exe$')):
- continue
- compat_print(
- ' %s size: %s downloads: %d'
- % (asset_name, format_size(asset['size']), asset['download_count']))
-
-compat_print('total downloads traffic: %s' % format_size(total_bytes))
diff --git a/devscripts/update-formulae.py b/devscripts/update-formulae.py
deleted file mode 100644
index 41bc1ac7a..000000000
--- a/devscripts/update-formulae.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python3
-from __future__ import unicode_literals
-
-import json
-import os
-import re
-import sys
-
-sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-
-from yt_dlp.compat import compat_urllib_request
-
-
-# usage: python3 ./devscripts/update-formulae.py <path-to-formulae-rb> <version>
-# version can be either 0-aligned (yt-dlp version) or normalized (PyPl version)
-
-filename, version = sys.argv[1:]
-
-normalized_version = '.'.join(str(int(x)) for x in version.split('.'))
-
-pypi_release = json.loads(compat_urllib_request.urlopen(
- 'https://pypi.org/pypi/yt-dlp/%s/json' % normalized_version
-).read().decode('utf-8'))
-
-tarball_file = next(x for x in pypi_release['urls'] if x['filename'].endswith('.tar.gz'))
-
-sha256sum = tarball_file['digests']['sha256']
-url = tarball_file['url']
-
-with open(filename, 'r') as r:
- formulae_text = r.read()
-
-formulae_text = re.sub(r'sha256 "[0-9a-f]*?"', 'sha256 "%s"' % sha256sum, formulae_text)
-formulae_text = re.sub(r'url "[^"]*?"', 'url "%s"' % url, formulae_text)
-
-with open(filename, 'w') as w:
- w.write(formulae_text)
diff --git a/devscripts/update-version.py b/devscripts/update-version.py
deleted file mode 100644
index 0ee7bf291..000000000
--- a/devscripts/update-version.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python3
-from datetime import datetime
-import sys
-import subprocess
-
-
-with open('yt_dlp/version.py', 'rt') as f:
- exec(compile(f.read(), 'yt_dlp/version.py', 'exec'))
-old_version = locals()['__version__']
-
-old_version_list = old_version.split('.')
-
-old_ver = '.'.join(old_version_list[:3])
-old_rev = old_version_list[3] if len(old_version_list) > 3 else ''
-
-ver = datetime.utcnow().strftime("%Y.%m.%d")
-
-rev = (sys.argv[1:] or [''])[0] # Use first argument, if present as revision number
-if not rev:
- rev = str(int(old_rev or 0) + 1) if old_ver == ver else ''
-
-VERSION = '.'.join((ver, rev)) if rev else ver
-
-try:
- sp = subprocess.Popen(['git', 'rev-parse', '--short', 'HEAD'], stdout=subprocess.PIPE)
- GIT_HEAD = sp.communicate()[0].decode().strip() or None
-except Exception:
- GIT_HEAD = None
-
-VERSION_FILE = f'''\
-# Autogenerated by devscripts/update-version.py
-
-__version__ = {VERSION!r}
-
-RELEASE_GIT_HEAD = {GIT_HEAD!r}
-'''
-
-with open('yt_dlp/version.py', 'wt') as f:
- f.write(VERSION_FILE)
-
-print('::set-output name=ytdlp_version::' + VERSION)
-print(f'\nVersion = {VERSION}, Git HEAD = {GIT_HEAD}')
diff --git a/devscripts/wine-py2exe.sh b/devscripts/wine-py2exe.sh
deleted file mode 100755
index 8bc8ce55b..000000000
--- a/devscripts/wine-py2exe.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-# UNUSED
-
-#!/bin/bash
-
-# Run with as parameter a setup.py that works in the current directory
-# e.g. no os.chdir()
-# It will run twice, the first time will crash
-
-set -e
-
-SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
-
-if [ ! -d wine-py2exe ]; then
-
- sudo apt-get install wine1.3 axel bsdiff
-
- mkdir wine-py2exe
- cd wine-py2exe
- export WINEPREFIX=`pwd`
-
- axel -a "http://www.python.org/ftp/python/2.7/python-2.7.msi"
- axel -a "http://downloads.sourceforge.net/project/py2exe/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe"
- #axel -a "http://winetricks.org/winetricks"
-
- # http://appdb.winehq.org/objectManager.php?sClass=version&iId=21957
- echo "Follow python setup on screen"
- wine msiexec /i python-2.7.msi
-
- echo "Follow py2exe setup on screen"
- wine py2exe-0.6.9.win32-py2.7.exe
-
- #echo "Follow Microsoft Visual C++ 2008 Redistributable Package setup on screen"
- #bash winetricks vcrun2008
-
- rm py2exe-0.6.9.win32-py2.7.exe
- rm python-2.7.msi
- #rm winetricks
-
- # http://bugs.winehq.org/show_bug.cgi?id=3591
-
- mv drive_c/Python27/Lib/site-packages/py2exe/run.exe drive_c/Python27/Lib/site-packages/py2exe/run.exe.backup
- bspatch drive_c/Python27/Lib/site-packages/py2exe/run.exe.backup drive_c/Python27/Lib/site-packages/py2exe/run.exe "$SCRIPT_DIR/SizeOfImage.patch"
- mv drive_c/Python27/Lib/site-packages/py2exe/run_w.exe drive_c/Python27/Lib/site-packages/py2exe/run_w.exe.backup
- bspatch drive_c/Python27/Lib/site-packages/py2exe/run_w.exe.backup drive_c/Python27/Lib/site-packages/py2exe/run_w.exe "$SCRIPT_DIR/SizeOfImage_w.patch"
-
- cd -
-
-else
-
- export WINEPREFIX="$( cd wine-py2exe && pwd )"
-
-fi
-
-wine "C:\\Python27\\python.exe" "$1" py2exe > "py2exe.log" 2>&1 || true
-echo '# Copying python27.dll' >> "py2exe.log"
-cp "$WINEPREFIX/drive_c/windows/system32/python27.dll" build/bdist.win32/winexe/bundle-2.7/
-wine "C:\\Python27\\python.exe" "$1" py2exe >> "py2exe.log" 2>&1
-