Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 03/11/2014, à 19:15

linewx

Re : Petit script pour "automatiser" youtube-dl

titre =  Chill Out _ Ambient
titre_dos =  "Chill Out _ Ambient"

Je ne veux pas les guillemets dans le nom, juste les caractères. Je pensais que les guillemets auraient permis de faire comprendre a python qu'il doit rajouter des back slash.
J'y ai pensé oui mais c'est pas tellement jolis comme noms de dossier..
J'étais partit sur un chdir mais on m'a proposé chmod donc j'ai essayé ^^
Oh je n'avais pas pensé à ça ! Pour le moment je n'ai pas e de soucis avec.

Hors ligne

#27 Le 03/11/2014, à 19:23

melixgaro

Re : Petit script pour "automatiser" youtube-dl

Ah ok, je n'avais pas vu.

Bon on reprend

Au début, on a ça :

In [3]: print(titre_dos)
"Chill Out _ Ambient"

la variable comprend le titre de la liste de lecture, entouré par les guillemets. C'est bien ça ?


Et avec ceci, on enlève les guillemets anglais et on enlève les espaces.

In [6]: print(titre_dos.replace('\"', '').replace(' ', '_'))
Chill_Out___Ambient

Donc dans ton code, tu écris ceci pour corriger le contenu de la variable titre_dos

titre_dos = titre_dos.replace('\"', '').repalce(' ', '_')

Dis-moi si je suis à côté de la plaque ou pas big_smile


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#28 Le 03/11/2014, à 19:34

linewx

Re : Petit script pour "automatiser" youtube-dl

Ton idée est vraiment pas mal ! Si le probème est juste pour l'acces au dossier, rien ne m'empêche de virer tous les espaces, accéder au dossier, télécharger et lui redonner son nom précédant.

Enfin je vais essayer smile

Hors ligne

#29 Le 03/11/2014, à 19:53

linewx

Re : Petit script pour "automatiser" youtube-dl

Je mérites un claque certaine !!!!

os.chdir("/home/linewx/Musique/" + titre_dos)

n'est pas égal à ça...

os.chdir("home/linewx/Musique/" + titre_dos)

avec un slash de moins tout va mieux !

Enfin un test pour voir si je peux télécharger dans le dossier !

Hors ligne

#30 Le 03/11/2014, à 19:59

melixgaro

Re : Petit script pour "automatiser" youtube-dl

attends j'ai mieux relu ton script et testé ligne par ligne

In [12]: titre = subprocess.check_output(command.split(), shell = False)  # lance la commande et stocke le résultat dans titre

In [13]: titre
Out[13]: '"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n'

In [14]: titre=titre.decode('utf-8')

In [15]: titre
Out[15]: u'"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n"Chill Out _ Ambient"\n

Donc la variable 'titre' contient plusieurs fois le nom de la liste. Pour extraire le nom, je te propose ceci :

In [19]: titre.split('\n')[0]
Out[19]: u'"Chill Out _ Ambient"'

La méthode 'split' permet de couper la chaîne à chaque saut de ligne '\n' et renvoie une variable de type liste. Le '[0]' permet de ne garder que le premier élément de la liste. Tu as toujours les problèmes de guillemets droits, que l'on résout en ajoutant :

In [21]: titre_dos = titre.split('\n')[0].replace('"', '')

In [23]: print(titre_dos)
Chill Out _ Ambient

Donc plus besoin de ta variable nb_vid pour le nom de la liste de lecture (le bricolage avec 'fin_carac').


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#31 Le 03/11/2014, à 20:07

linewx

Re : Petit script pour "automatiser" youtube-dl

Ca y est ca fonctionne j'arrive à avoir un dossier au bon nom avec des espaces smile

Ah nickel merci je change tout ça, c'est mon premier programme les méthodes sont pas toujours les plus simples wink

Hors ligne

#32 Le 26/03/2015, à 02:19

splatpope

Re : Petit script pour "automatiser" youtube-dl

Salut, je sais que je suis un peu en retard mais...

J'ai plus ou moins réussi à faire la même chose que toi... mais en bash :v

youtube-dl ne possède aucune option de diagnostic permettant de retrouver le nom de la playlist concernée.
Par contre, il possède une option permettant de print le nom du fichier résultant sur le stdout.

Du coup, il suffit de lui demander de se mettre en diagnostic nom du fichier output, de formater le fichier en "%(playlist_title)s" et de lui demander de ne traiter que la première vidéo et pouf, il output un string contenant le nom de la playlist, sans aucun problème d'espaces pour les noms de fichiers parceque bash est quelqu'un de gentil big_smile

PLAYLIST_TITLE="$(youtube-dl --get-filename --playlist-end 1 -o '%(playlist_title)s' *ID DE LA PLAYLIST*)"

Hors ligne