[PYTHON] convertir la playlist youtube en fichier au format m3u local pour smplayer (par outil jouet)

Avant d'accepter

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.

environnement

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.

Corps

#!/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

Il faut noter que

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

convertir la playlist youtube en fichier au format m3u local pour smplayer (par outil jouet)
Convertir le graphique matplotlib au format de fichier emf
Convertir les packages binaires pour Windows au format roue
Convertir les articles Qiita au format de publication Jekyll pour la sauvegarde
Comment convertir des fichiers Json au format CSV ou au format EXCEL
Convertir le fichier XML au format Pascal VOC en fichier json au format COCO
[Caffe] Convertit le fichier moyen du format proto binaire au format npy
Convertir un fichier Excel en texte en Python à des fins de comparaison