Rufen wir nun die youtube-dl-Bibliothek von Python in der Befehlszeile auf und erstellen eine lokale Datei der Wiedergabeliste, die für eine Weile verwendet werden kann.
Dieses Mal habe ich den Vorgang unter Windows 10 überprüft und dabei gitbash als Shell und Conda verwendet. Python installiert mit /), youtube-dl von diesem Pip installiert.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import codecs
import sys
import youtube_dl
class yt_Listup:
""" Wrapper for youtube-dl library
* read youtube.com playlist
* output by m3u format
"""
def __init__(self, url):
self.url_list = []
ydl = youtube_dl.YoutubeDL({'outtmpl': u'%(id)s%(ext)s', \
'logtostderr': True})
with ydl:
result = ydl.extract_info(
url ,
download=False, # We just want to extract the info
)
if 'entries' in result:
self.url_list.extend(result['entries'])
else:
self.url_list.append(result)
def m3u(self, fileHandle = codecs.getwriter('utf_8')(sys.stdout)):
for item in self.url_list:
fileHandle.write( "# " + item['title'] + "\n" + \
item['webpage_url'] + "\n" )
return
if __name__ == "__main__" :
l = yt_Listup(sys.argv[1]).m3u()
Setzen Sie das Ausgabeziel vorerst auf stdout und speichern Sie es durch Umleitung. Ich bin der Meinung, dass Personen, die einen Vorbehalt benötigen, keine Codefragmente lesen
Um von denen gescholten zu werden, die es mit Python ernst meinen, wurde es nicht so formatiert, dass es PEP8 entspricht. Es enthält keinen Testcode, der wahrscheinlich von Leuten beschimpft wird, die die Entwicklung ernst nehmen. Wenn Sie diese Funktion nicht erweitern möchten, ist es einfacher und korrekter, mit = zuzuweisen, ohne append () oder expand () zu verwenden. Ich bevorzuge es, eine Usage () - Funktion zur Verwendung in der Befehlszeile hinzuzufügen, diesen Code umzubenennen und ihn schließlich in den Bibliothekspfad einzufügen. Abgesehen vom Wiedergabebildschirm hat mir die angezeigte URL auf dem Smplayer-Wiedergabelistenbildschirm nicht gefallen, und ich habe einige Änderungen an dem hier angegebenen Code vorgenommen. Je multifunktionaler es ist, desto länger wird es.
Darüber hinaus konnte ich die Funktion "Wahrscheinlich für alle" zum Speichern der YouTube-Wiedergabeliste in einer lokalen Datei nicht finden. Der Hauptteil ist am einfachsten zu verstehen, und ich dachte, es wäre einfacher zu lesen, wenn nur dieser Code veröffentlicht würde, da er nahe am Klebstoff der Site namens Qiita liegt.
Thanks
Recommended Posts