Linux und Ich

Blog über Ubuntu, Linux, Android und IT

youtube-dl direkt aus der Anwendung wieder fitt machen

youtube-dl direkt aus der Anwendung wieder fitt machen

| 9 Kommentare

Ich finde ja die kleinen Skripte tatort-dl (für die ARD-Mediathek), zdf-dl und auch youtube-dl recht praktisch um schnell Videos aus Mediatheken oder YouTube auf die Platte zu bannen. So kann man sie bequem in einem Medienplayer anschauen, ohne dass es dank Flash ruckelt und hat mehr Komfort, weil man z.B. über eine Fernbedienung auch mal ein Päuschen einlegen kann. Allerdings kommt es vor, dass YouTube sein Streaming-Verfahren änder, so dass youtube-dl nicht mehr funktioniert. Was ich nicht wusste: Die Anwendung hat einen Update-Mechanismus eingebaut, der das kleine Tool schnell wieder auf Vordermann bringt.

Der Tipp stammt von Karten von Linuxfiles.de und steht auch im Wiki von ubuntuusers.de, an mir ist er allerdings bislang komplett vorbeigegangen. Mir fehlt eigentlich nur noch eine Art unp für die Mediathek-Downloader, so dass man mit einem Befehl sämtliche Mediatheken erschlägt, wobei das mit ein bisschen Shell-Magie eigentlich schnell umgesetzt wäre. Allerdings lade ich nun wieder auch nicht sooo oft irgendwelche Videos runter.

youtube-dl will nicht mehr…

$ youtube-dl http://www.youtube.com/watch?v=EXB0WboeELM
[youtube] Setting language
[youtube] EXB0WboeELM: Downloading video webpage
[youtube] EXB0WboeELM: Downloading video info webpage
[youtube] EXB0WboeELM: Extracting video information
ERROR: unable to download video

Anwendung aktualisieren…

$ sudo youtube-dl -U
Updating to latest version...
Updated youtube-dl. Restart youtube-dl to use the new version.

Und schon klappts wieder…

$ youtube-dl http://www.youtube.com/watch?v=EXB0WboeELM
[youtube] Setting language
[youtube] EXB0WboeELM: Downloading video webpage
[youtube] EXB0WboeELM: Downloading video info webpage
[youtube] EXB0WboeELM: Extracting video information
[download] Destination: EXB0WboeELM.flv
[download]  24.3% of 18.74M at    1.27M/s ETA 00:11

Autor: Christoph

Hallo, ich bin Christoph -- Linux-User, Blogger und pragmatischer Fan freier Software. Wie Ihr ohne Zweifel bemerkt haben solltet schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen, sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Google+ oder Twitter oder natürlich dem Blog folgen.

9 Kommentare

  1. Ein Wort zur Sicherheit des Updaters wäre interessant.

    • Hallo Alex, du rufst ein Programm mit Root-Rechten auf, das etwas aus dem Internet lädt und in dein System schiebt. Die Sicherheit könnte insofern besser sein, dass urllib keine Signaturen prüft und auch nach dem Download kein Check eingebaut wurde, ob die neue Datei auch wirklich vom Entwickler stammt, dafür müsste aber dessen GitHub-Account manipuliert werden.

      UPDATE_URL = 'https://raw.github.com/rg3/youtube-dl/master/youtube-dl'

      [...]

      def updateSelf(downloader, filename):
          ''' Update the program file with the latest version from the repository '''
          # Note: downloader only used for options
          if not os.access(filename, os.W_OK):
              sys.exit('ERROR: no write permissions on %s' % filename)

          downloader.to_screen(u'Updating to latest version...')

          try:
              try:
                  urlh = urllib.urlopen(UPDATE_URL)
                  newcontent = urlh.read()
                 
                  vmatch = re.search("__version__ = '([^']+)'", newcontent)
                  if vmatch is not None and vmatch.group(1) == __version__:
                      downloader.to_screen(u'youtube-dl is up-to-date (' + __version__ + ')')
                      return
              finally:
                  urlh.close()
          except (IOError, OSError), err:
              sys.exit('ERROR: unable to download latest version')

          try:
              outf = open(filename, 'wb')
              try:
                  outf.write(newcontent)
              finally:
                  outf.close()
          except (IOError, OSError), err:
              sys.exit('ERROR: unable to overwrite current version')

          downloader.to_screen(u'Updated youtube-dl. Restart youtube-dl to use the new version.')
  2. Danke für den Hinweis.

  3. Leider funktioniert seit dem letzten Update das extrahieren des Audiostroms nach mp3 nicht mehr :(

    • Wahrscheinlich benutzt du ffmpeg zum encodieren? Dem ffmep fehlen bei vielen Versionen ganz einfach die passenden codecs.

      Für mich hat

      sudo apt-get install ubuntu-restricted-extras

      das Problem gelöst. Dabei wurde allerdings jede Menge instaliert, das ich wahrscheinlich nie brauchen werde. In einem anderen Thread fand ich, dass ein Paket mit dem namen libavcodec-unstripped-52 benötigt wird. Das Paket allerdings war für mein Ubunti 12.04 LTS nicht verfügbar. Der Befehl oben installiert allerdings auch ein Paket libavcodec-extra-53.

      Versuch mal vorher, ob zur Lösung des Problems auch ein

      sudo apt-get install libavcodec-extra-53

      ausreicht

  4. Man kann youtube-dl auch einfach aus seinem Heimatverzeichnis heraus nutzen. Insofern braucht es kein sudo zum Updaten.

  5. Ich mag das Video, dass du im Beispiel nutzt. :D

  6. Hallo Christoph,
    bitte um Hilfe. Ich bekomme folgdende Falschmeldung, nachdem ich yt-dl deinstalliert und nach den Angaben im wiki manuell neu installiert habe. Danke für einen Tipp!

    roland@roland-desktop:~$ youtube-dl https://www.youtube.com/watch?v=v1pZgrk_WCw
    /usr/local/bin/youtube-dl: Zeile 1: Syntaxfehler beim unerwarteten Wort »newline«
    /usr/local/bin/youtube-dl: Zeile 1: `’
    roland@roland-desktop:~$

Hinterlasse eine Antwort

Auf Linux und Ich darf anonym kommentiert werden. Die Felder für Name und E-Mail-Adresse dürfen beim Eintragen eures Kommentars leer bleiben. Ich freue mich aber über jeden Kommentar, zu dem der Autor mit seinem Namen steht.