Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1768 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash/AppleScript] Télécharger vos musiques Youtube en 1 clic (Mac)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash/AppleScript] Télécharger vos musiques Youtube en 1 clic (Mac)

n°2288970
BlueYedOne
Posté le 28-09-2016 à 12:26:35  profilanswer
 

Salut,
 
Le script python youtube-dl dispo ici https://rg3.github.io/youtube-dl/ permet de chopper directement une vidéo depuis Youtube à l'aide du lien.
 
J'ai écrit un script Bash pour automatiser ça, histoire de pouvoir télécharger la vidéo en 1 clic. Dans Automator je récupère l'URL de la fenêtre Safari en avant, avec un bloc "Obtenir la page Web actuelle de Safari" puis j'ai un "Exécuter un script Shell" configuré "comme argument" avec ce code:
 

Code :
  1. # Obtient url du block au dessus et stock dans "f"
  2.     for f in "$@"
  3.     do
  4.    
  5.     # Execute la commande youtube-dl pour télécharger l'url $f en "best audio quality" puis convertit au format .m4a avec ffprobe (télécharger audio seul plus rapide que la vidéo)
  6.         /usr/local/bin/youtube-dl -f bestaudio --audio-quality 0 -x --audio-format m4a -o '/Users/user/Music/%(title)s.%(ext)s' "$f"
  7.    
  8.     # Obtient le nom de la vidéo Youtube avec l'argument youtube-dl "-e" et le stock dans la variable "title"
  9.      title=$(/usr/local/bin/youtube-dl -e "$f" );
  10.    
  11.     # Attend fin de la commande (youtube-dl peut être long à retourner)
  12.      sleep 3
  13.    
  14.     # Display la notification avec AppleScript en utilisant "osascript -e"
  15.      /usr/bin/osascript -e 'display notification \"$title\" with title "Music Downloaded"'
  16.     done


Et là je rencontre deux problèmes :  
     - J'ai bien l'impression que le -f de youtube-dl pour choisir la meilleure qualité audio et le -x pour convertir en m4a ne fonctionnent pas ensemble. Mais je n'ai pas trouvé de doc à ce sujet.
     - Et je n'arrive pas à faire apparaitre la notification, mon hypothèse est que la variable Bash `$title` ne marche pas avec une commande AppleScript :

Code :
  1. # Display notification with AppleScript using "osascript -e"
  2.     /usr/bin/osascript -e 'display notification \"$title\" with title "Music Downloaded"'


 
Merci de votre aide!


Message édité par BlueYedOne le 28-09-2016 à 12:30:26

---------------
Quand le sage montre la lune, le con regarde le doigt.
mood
Publicité
Posté le 28-09-2016 à 12:26:35  profilanswer
 

n°2290533
tuxerman12
Posté le 22-10-2016 à 19:18:55  profilanswer
 

En bash tu dois initialiser tes variables avant de les utiliser.

n°2290546
Profil sup​primé
Posté le 23-10-2016 à 09:27:45  answer
 

Citation :

En bash tu dois initialiser tes variables avant de les utiliser.

ah, bon, et depuis quand ?
 

Citation :

je n'arrive pas à faire apparaitre la notification


c'est un problème de développement qui n'est pas effectué entre les apostrophes :

Code :
  1. $ var="> bla bla <"
  2. $ echo 'tralala \"$var\" lalère'
  3. tralala \"$var\" lalère
  4. $ echo "tralala $var lalère"
  5. tralala > bla bla < lalère
  6. $ echo "tralala \"$var\" lalère" # ici, la protection des guillemets a du sens
  7. tralala "> bla bla <" lalère


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash/AppleScript] Télécharger vos musiques Youtube en 1 clic (Mac)

 

Sujets relatifs
[Bash] While read line & awkDémarrer dans une tache panifiée Git Bash minimisé
[RSOLU] [bash] while avec if/elif/fi qui tourne en boucleLANGAGE C : MAC FLOODING
recherche de code pour, par clic sur bouton, poser correctement l'aInteractions script bash et application en ligne de commande
jQuery: playlist youtubevariable dans une condition bash
Recuperer un clic sur une pictureBoxBuild sur Gnu/Linux pour MS Windows et/ou Mac
Plus de sujets relatifs à : [Bash/AppleScript] Télécharger vos musiques Youtube en 1 clic (Mac)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR