iTunes: Créer une smart playlist nommée Reprise ? [Résolu] |
Bienvenue invité ( Connexion | Inscription )
iTunes: Créer une smart playlist nommée Reprise ? [Résolu] |
19 Dec 2012, 13:50
Message
#1
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Hello à tous,
Alors voilà, pensez-vous qu'il soit possible de créer une playlist intelligente qui afficherait tous les morceaux dont le nom se reproduit au moins une fois? Ainsi je pourrai afficher tous les morceaux qui font l'objet d'une reprise. Vous sauriez comment faire? Moi, j'ai pas trouvé... (:-/ -------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
20 Dec 2012, 13:24
Message
#2
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Donc personne? Pas de formule magique?...
-------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
20 Dec 2012, 14:02
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 3 883 Inscrit : 23 Dec 2007 Lieu : Portmeirion Membre no 103 209 |
Et avec la fonction "Afficher les doublons" ?
-------------------- Dans l'ordre d'apparition (sans compter ceux que je n'ai plus) et en service:
- MBP 16 2,3Ghz - 32Go - 2To - 05/2020 - OS 11.2.2, - Mac mini i5 2,6Ghz - 8Go - 1To FD - 04/2016 - OS 11.2.2, - iPad mini - 64Go - 12/2012 - iOs 9.3.6, ne sert plus que pour les films des mômes, - iPad Pro 10,5 - 256Go - 06/2017 - iPadOs 14.4.2, - iPhone Xs - 256Go - 09/2018 - iOs 14.4.2, - Livebox play fibre - Sosh. Et pour celles et ceux qui lisent les génériques de fin jusqu'au bout, entre autres : - Precision 50´s Squier Classic Vibe, - Gibson Les Paul CR8, - Fender Telecaster standard 1968 (une vraie d’août 68 ;-) !!!), - Martin 000-28EC Eric Clapton, - Fender Stratocaster 63' Custom Shop Michael Landau, - Gibson ES-335 Custom Shop Lee Ritenour, - Koch Studiotone II Head + 2x12 Koch, - Fender Princeton Reverb-Amp 68´, - Marshall 5275. " C'est curieux, chez les Apple bashers, cette manie de faire des phrases... ". |
|
|
20 Dec 2012, 19:44
Message
#4
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Non, je les ai éliminés!
Ce que je veux, c'est afficher la multitude de morceaux portant le même titre par des interprètes différents, créant ainsi une playlist affichant uniquement des reprises. -------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
24 Dec 2012, 08:47
Message
#5
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 292 Inscrit : 17 Dec 2006 Lieu : Clermont-Ferrand, Auvergne, France Membre no 75 928 |
En effet la fonction pour les doublons ne marchera pas. Ni même une Smart Playlist.
La solution : exporter la biblio vers un fichier txt, la gérer dans un spreadsheet Excel ou Numbers puis trier et rechercher les doublons. Si tu ne sais pas faire, envoie-moi par mail ton export de bibliothèque, je te le ferai. Ensuite, il ne restera plus qu'à creer la playlist -------------------- (Lion) MacBook Air 13,3'' i5 1,7 ghz RAM 4 go ; iMac alu 24'' C2D 2,4 ghz RAM 4 go ; iMac blanc 20'' C2D 2,16 ghz RAM 3 go ; (Snow Leopard) Mac mini CD 1,66 ghz RAM 2 go ; MacBook CD 1,83 ghz RAM 2 go
(System 6.0.7) Macintosh SE/30 68030 RAM 2 mo + Time Capsule 500 go pour arroser tout ça iPod : classic 160 go noir ; 5G 60 go blanc ; nano 4G 8 go RED ; shuffle vert foncé 1 go ; iPhone 4 16 go noir ; 3GS 32 go noir ; 3G 16 go blanc ; EDGE 8 go |
|
|
25 Dec 2012, 06:38
Message
#6
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Hmmhh... Merci pour ta réponse! Je constate qu'il n'y a pas vraiment de solution simple.
Si je savais écrire un script ou créer une petite appli, je me lancerai là-dedans! Sinon merci pour ta proposition, mais avec plus de 55 000 morceaux, ça va pas être facile de gérer ça à la mano... ;-) -------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
10 Dec 2014, 08:47
Message
#7
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Je relance le sujet au cas-où un script-maniac de génie passait par là ...
-------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
10 Dec 2014, 16:53
Message
#8
|
|
Adepte de Macbidouille Groupe : Membres Messages : 116 Inscrit : 7 Nov 2013 Membre no 187 643 |
et la fonction recherche ne te convient pas ?
-------------------- Ipad Pro 9,7' 128go, iphone 7+ 32go, Imac 21,5' 2,9 ghz Fusiondrive 1to, mbp 15' 2014.
|
|
|
Guest_JacqR_* |
10 Dec 2014, 20:33
Message
#9
|
Guests |
Bonsoir,
Je relance le sujet au cas-où un script-maniac de génie passait par là ... Ce script AppleScript fonctionne bien ici (iTunes 12 et Mavericks) Code activate application "iTunes" set iTunes_XML to quoted form of (do shell script "/usr/bin/defaults read com.apple.iApps iTunesRecentDatabases |/usr/bin/sed -En 's:^ *\"(.*)\"$:\\1:p' |/usr/bin/perl -MURI -e 'print URI->new(<>)->file;'") my makePlaylist(iTunes_XML) on makePlaylist(f) script o property r : {} end script set o's r to paragraphs of (do shell script "grep -a -A 1 '<key>Track ID</key><integer>.\\+</integer>' " & f & " | sed 's~.*<integer>\\(.*\\)</.*~\\1~;s~.*<string>\\(.*\\)</.*~\\1~' | while read line;do if [[ $line =~ ^-?[0-9]+$ ]]; then t=\"$line\" elif [[ \"$line\" != \"--\" ]] && [[ ! \"$line\" =~ \"</dict>\" ]]; then echo \"$line\\t$t\" t=\"\" fi done | sort | awk 'BEGIN {FS=\"\\t\"; last=\"\"; id=\"\" }{ if ($1 != last){ last=$1; id=$2} else if (id != \"\"){print id; id=\"\"; print $2} else print $2;}'") set tc to count o's r if o's r is not {""} then tell application "iTunes" tell user playlist "Reprise" to if exists then delete set newP to make new playlist with properties {name:"Reprise"} repeat with i from 1 to tc try duplicate (tracks whose database ID is (item i of o's r)) to newP end try end repeat reveal newP end tell end if end makePlaylist Le script créera une liste de lecture nommée "Reprise" à chaque fois, l'ancienne sera supprimée, c'est plus simple comme cela plutôt que de vérifier si le morceau est déjà dans la liste de lecture. La comparaison des noms des morceaux est sensible à la casse. ------------------------- Si vous ne voulez pas de la sensibilité à la casse lors de la comparaison des noms des morceaux, utiliser ce script Code activate application "iTunes" set iTunes_XML to quoted form of (do shell script "/usr/bin/defaults read com.apple.iApps iTunesRecentDatabases |/usr/bin/sed -En 's:^ *\"(.*)\"$:\\1:p' |/usr/bin/perl -MURI -e 'print URI->new(<>)->file;'") my makePlaylist(iTunes_XML) on makePlaylist(f) script o property r : {} end script set o's r to paragraphs of (do shell script "grep -a -A 1 '<key>Track ID</key><integer>.\\+</integer>' " & f & " | sed 's~.*<integer>\\(.*\\)</.*~\\1~;s~.*<string>\\(.*\\)</.*~\\1~' | while read line;do if [[ $line =~ ^-?[0-9]+$ ]]; then t=\"$line\" elif [[ \"$line\" != \"--\" ]] && [[ ! \"$line\" =~ \"</dict>\" ]]; then echo \"$line\\t$t\" t=\"\" fi done | perl -ne 'use encoding 'utf8';print lc' | sort | awk 'BEGIN {FS=\"\\t\"; last=\"\"; id=\"\" }{ if ($1 != last){ last=$1; id=$2} else if (id != \"\"){print id; id=\"\"; print $2} else print $2;}'") set tc to count o's r if o's r is not {""} then tell application "iTunes" tell user playlist "Reprise" to if exists then delete set newP to make new playlist with properties {name:"Reprise"} repeat with i from 1 to tc try duplicate (tracks whose database ID is (item i of o's r)) to newP end try end repeat reveal newP end tell end if end makePlaylist Edition : ajout de use encoding 'utf8'; dans la commande perl du deuxième script pour que les accents en majuscule soit convertis correctement en minuscule. Ce message a été modifié par JacqR - 11 Dec 2014, 16:57. |
|
|
11 Dec 2014, 10:13
Message
#10
|
|
Adepte de Macbidouille Groupe : Membres Messages : 116 Inscrit : 7 Nov 2013 Membre no 187 643 |
Bravo c'est balaise.
-------------------- Ipad Pro 9,7' 128go, iphone 7+ 32go, Imac 21,5' 2,9 ghz Fusiondrive 1to, mbp 15' 2014.
|
|
|
Guest_JacqR_* |
11 Dec 2014, 16:51
Message
#11
|
Guests |
Bonjour,
Voici un script qui utilise une méthode plus simple que je n'avais pas pensé hier. Le script (sensible à la casse). Code activate application "iTunes" set iTunes_XML to quoted form of (do shell script "/usr/bin/defaults read com.apple.iApps iTunesRecentDatabases |/usr/bin/sed -En 's:^ *\"(.*)\"$:\\1:p' |/usr/bin/perl -MURI -e 'print URI->new(<>)->file;'") my makePlaylist(iTunes_XML) on makePlaylist(f) script o property r : {} end script set o's r to paragraphs of (do shell script "awk '/<key>Name<\\/key><string>/{gsub(/.*<string>/, \"\");gsub(/<\\/string>.*/, \"\");print}; /<key>Playlists<\\/key>/{exit 0}' " & f & " | sort | uniq -d") set tc to count o's r tell application "iTunes" tell user playlist "Reprise" to if exists then delete set newP to make new playlist with properties {name:"Reprise"} if o's r is not {""} then considering case repeat with i from 1 to tc try duplicate (tracks whose name is (item i of o's r)) to newP end try end repeat end considering end if reveal newP end tell end makePlaylist Si vous ne voulez pas de la sensibilité à la casse lors de la comparaison des noms des morceaux, utiliser ce script Code activate application "iTunes"
set iTunes_XML to quoted form of (do shell script "/usr/bin/defaults read com.apple.iApps iTunesRecentDatabases |/usr/bin/sed -En 's:^ *\"(.*)\"$:\\1:p' |/usr/bin/perl -MURI -e 'print URI->new(<>)->file;'") my makePlaylist(iTunes_XML) on makePlaylist(f) script o property r : {} end script set o's r to paragraphs of (do shell script "awk '/<key>Name<\\/key><string>/{gsub(/.*<string>/, \"\");gsub(/<\\/string>.*/, \"\");print}; /<key>Playlists<\\/key>/{exit 0}' " & f & " | perl -ne 'use encoding 'utf8';print lc' | sort | uniq -d") set tc to count o's r tell application "iTunes" tell user playlist "Reprise" to if exists then delete set newP to make new playlist with properties {name:"Reprise"} if o's r is not {""} then repeat with i from 1 to tc try duplicate (tracks whose name is (item i of o's r)) to newP end try end repeat end if reveal newP end tell end makePlaylist |
|
|
23 Feb 2018, 04:33
Message
#12
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 930 Inscrit : 22 Feb 2005 Lieu : Charente Membre no 33 643 |
Merci mille fois JacqR, ton script marche du feu de dieu ! Il est en cours d'exécution mais il a bien créé une nouvelle playlist nommée Reprise.
Pour l'améliorer il faudrait ne pas inclure les podcasts, mais ça y est, ton script a achevé sa tâche : Tous les morceaux portant le même nom sont affichés sur la playlist et ça c'est hyyyper coooOOool !!! C'est à dire c'est ce que je cherchais depuis un bon bout de temps et je suis certain que beaucoup de monde trouveront ce script excellent ! Là, t'as fait ma journée, et celle des amis à qui je vais partager ce topic ! :-) Pour résumer pour les néophytes comme moi : copier le dernier code proposé par JacqR puis dans Applications / Utilitaires, ouvrez Editeur de Scripts et collez-le script dans Editeur de Scripts, puis appuyez sur Play. Laissez au script le temps de terminer sa tâche qui peut prendre plusieurs minutes. Quand il aura fini il affichera la-dite playliste dans iTunes. Vous pouvez exporter le script pour le conserver dans votre dossier Applications ou ailleurs. Je ne sais pas comment on met [Résolu] mais bon, ça l'est ! Ce message a été modifié par paradisestation - 25 Feb 2018, 16:22. -------------------- MacBook Pro 2015 i7 2,2 GHz 16 Go OS 10.14.6 iMac 27" 2017 i7 4,2 Ghz 40 Go OS 10.14.6
|
|
|
24 Feb 2018, 23:19
Message
#13
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 363 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
|
|
|
Nous sommes le : 28th April 2024 - 13:16 |