#!/usr/bin/env python3 import hashlib import shutil import subprocess import tempfile import urllib.request URL = 'https://github.com/downloads/rg3/youtube-dl/youtube-dl' with tempfile.NamedTemporaryFile(suffix='youtube-dl', delete=True) as ytdl_file: with urllib.request.urlopen(URL) as dl: shutil.copyfileobj(dl, ytdl_file) ytdl_file.seek(0) data = ytdl_file.read() ytdl_file.flush() version = subprocess.check_output(['python3', ytdl_file.name, '--version']).decode('ascii').strip() # Read template page with open('download.html.in', 'r', encoding='utf-8') as tmplf: template = tmplf.read() md5sum = hashlib.md5(data).hexdigest() sha1sum = hashlib.sha1(data).hexdigest() sha256sum = hashlib.sha256(data).hexdigest() template = template.replace('@PROGRAM_VERSION@', version) template = template.replace('@PROGRAM_URL@', URL) template = template.replace('@PROGRAM_MD5SUM@', md5sum) template = template.replace('@PROGRAM_SHA1SUM@', sha1sum) template = template.replace('@PROGRAM_SHA256SUM@', sha256sum) with open('download.html', 'w', encoding='utf-8') as dlf: dlf.write(template)