Files
dotfiles/Userdata/Scripts/rippers/stromberg_Ripper/ripper.py
T
2020-05-05 10:43:39 +02:00

67 lines
2.2 KiB
Python

import requests
import urllib.request
import xml.etree.ElementTree as ET
import subprocess
filenametemplate = "./video/S{}E{} {}.mp4"
srcfile = open("./list.txt", 'r')
logfile = open("./video/downloadlog.txt", "a")
logfile.write("\nNew Session\n")
while True:
contentid = srcfile.readline().replace("\n", "")[:-1]
if not contentid:
break
contentid_lastslash = contentid.rfind('/') + 1
contentid = int(contentid[contentid_lastslash:])
requesturl = "https://www.myspass.de/includes/apps/video/getvideometadataxml.php?id=" + str(contentid)
headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 5.1.1; SM-G928X Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36'}
response = requests.get(requesturl, headers=headers)
root = ET.ElementTree(ET.fromstring(response.text)).getroot()
title = root.find("title").text
season = root.find("season").text
episode = root.find("episode").text
videourl = root.find("url_flv").text
if videourl or response.status_code != 200:
videourl = videourl.split('/')
videourl[12] = str(int(int(videourl[12]) / contentid))
videourl[13] = str(int(int(videourl[13]) / contentid))
videourl[14] = str(int(int(videourl[14]) / contentid))
temp = videourl[15].split('_')
videourl[15] = str(int(int(temp[0]) / contentid)) + "_" + temp[1]
videourl = '/'.join(videourl)
filename = filenametemplate.format(season, episode, title)
videoprobe = requests.head(videourl)
if videoprobe.status_code == 200:
print("# Downloading following entry:")
print(filename)
#print(videourl)
logfile.write("Downloading '" + str(contentid) + "'\n")
subprocess.run(["youtube-dl", "-o", filename, "-f bestvideo+bestaudio/best", videourl])
else:
logfile.write("Videoprobe: Skipping '" + str(contentid) + "'' Response Code: '" + str(videoprobe.status_code) + "'\n")
else:
logfile.write("Empty Response: Skipping '" + str(contentid) + "'' Response Code: '" + str(response.status_code) + "'\n")
logfile.flush()
srcfile.close()
logfile.close()