Ich hab mich mal an einem Plugin versucht, welches folgendes tut:
Hier der Code:
Alles anzeigen
- Herunterladen der aktuellen Version von youtube-dl
- Entpacke das ganze ins /tmp/
- Kopie erstellen von Datei /usr/bin/youtube-dl =>/usr/bin/youtube-dl-bak
- Neue youtube-dl aus Archiv unter /usr/bin/ bereitstellen
- Kopie erstellen von Verzeichnis /usr/lib/python2.7/site-packages/youtube_dl => /usr/lib/python2.7/site-packages/youtube_dl-bak
- Neues Verzeichnis youtube_dl unter /usr/lib/python2.7/site-packages/ bereitstellen
Hier der Code:
Quellcode
- # -*- coding: utf-8 -*-
- from Components.config import config
- from Plugins.Plugin import PluginDescriptor
- import time
- import subprocess
- import urllib
- import os
- import tarfile
- import logging
- import re
- import ssl
- def deploy_youtube():
- time.sleep(10)
- dlpath = "/tmp/"
- yt_file = "/usr/bin/youtube-dl"
- yt_dir = "/usr/lib/python2.7/site-packages/youtube_dl"
- logger = logging.getLogger('youtube-dl-Check')
- hdlr = logging.FileHandler('/tmp/youtube-dl-fix.log')
- formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
- hdlr.setFormatter(formatter)
- logger.addHandler(hdlr)
- logger.setLevel(logging.INFO)
- logger.info('################################################################')
- logger.info('Ermittle aktuelle Version auf youtube-dl.org')
- context = ssl._create_unverified_context()
- url = "https://youtube-dl.org/"
- response = urllib.urlopen(url,context=context)
- data = str(response.read())
- regex = r"href=\"([0-9a-z\.\/\-]+\.gz)\""
- matches = re.findall(regex, data, flags=0)
- link = matches[0]
- online_version = link.replace("downloads/latest/","");
- logger.info('Aktuelle Version auf youtube-dl.org lautet: %s' % (online_version))
- logger.info('Lade %s nach %s herunter' % (online_version,dlpath))
- dlurl = url + 'downloads/latest/' + online_version
- os.system('mkdir ' + dlpath)
- os.system('wget -O ' + dlpath + online_version + ' ' + dlurl)
- logger.info('Entpacke youtube-dl')
- os.system('tar xvzf ' + dlpath + online_version + ' -C ' + dlpath)
- logger.info('Sichere ' + yt_file)
- os.system('cp -f ' + yt_file + ' ' + yt_file + '-bak')
- logger.info('Sichere ' + yt_dir)
- os.system('cp -Rf ' + yt_dir + ' ' + yt_dir + '-bak')
- logger.info('Stelle neue youtube-dl Datei in /usr/bin/ bereit')
- os.system('cp -f ' + dlpath + 'youtube-dl/bin/youtube-dl /usr/bin/')
- os.system('chmod 755 ' + yt_file)
- logger.info('Stelle neues youtube_dl Verzeichnis in /usr/lib/python2.7/site-packages bereit')
- os.system('cp -Rf ' + dlpath + 'youtube-dl/youtube_dl /usr/lib/python2.7/site-packages/')
- os.system('chmod 755 ' + yt_dir)
- logger.info('############################## Abgeschlossen ##############################')
- def leaveStandby():
- print "[YouTube-DL-Fix] leaving standby..."
- deploy_youtube
- def standbyCounterChanged(configElement):
- print "[YouTube-DL-Fix] going to standby..."
- from Screens.Standby import inStandby
- inStandby.onClose.append(leaveStandby)
- def autostart(reason, **kwargs):
- if kwargs.has_key("session") and reason == 0:
- print "[YouTube-DL-Fix] start...."
- deploy_youtube
- config.misc.standbyCounter.addNotifier(standbyCounterChanged, initial_call = False)
- def Plugins(**kwargs):
- return PluginDescriptor(
- name="YouTube-DL-Fix",
- description="YouTube-DL-Fix",
- where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART],
- fnc=autostart)
Viele Grüße
Tom
Uno 4K SE - 1 x DVB-S2 FBC Dual Tuner
Tom
Uno 4K SE - 1 x DVB-S2 FBC Dual Tuner