Maintenant, appelons la bibliothèque youtube-dl depuis python sur la ligne de commande et créons un fichier local de la liste de lecture qui peut être utilisé pendant un certain temps.
Cette fois, j'ai vérifié l'opération en le faisant sur Windows 10, en utilisant gitbash comme shell et Conda. Python installé avec /), youtube-dl installé à partir de ce pip.
#!/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()
Pour le moment, définissez la destination de sortie sur stdout et enregistrez-la par redirection .... Je pense que les personnes qui ont besoin d'une réserve ne lisent pas les fragments de code, donc
Pour être grondé par ceux qui sont sérieux au sujet de python, il n'a pas été formaté pour se conformer à PEP8. Il n'inclut pas de code de test, qui est susceptible d'être réprimandé par des personnes sérieuses en développement. Si vous ne souhaitez pas étendre cette fonctionnalité, il est plus simple et plus correct d'assigner avec = sans utiliser append () ou extend (). Ma préférence est d'utiliser la fonction Usage () si elle est utilisée sur la ligne de commande, de renommer ce code et de le placer éventuellement dans le chemin de la bibliothèque. Mis à part l'écran de lecture, je n'aimais pas que l'URL soit affichée telle qu'elle était sur l'écran de la playlist smplayer, et j'ai fait quelques modifications à partir du code donné ici. Plus il est multifonctionnel, plus il devient long.
En plus de cela, je n'ai pas trouvé la fonctionnalité "Probablement pour tout le monde" pour enregistrer la playlist youtube dans un fichier local. La partie principale est la plus simple à comprendre, et j'ai pensé que ce serait plus facile à lire si seulement ce code était publié car il était proche de la colle du site appelé Qiita.
Thanks
Recommended Posts