IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> iTunes: Créer une smart playlist nommée Reprise ? [Résolu]
Options
paradisestation
posté 19 Dec 2012, 13:50
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
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 
Go to the top of the page
 
+Quote Post
paradisestation
posté 20 Dec 2012, 13:24
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
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 
Go to the top of the page
 
+Quote Post
gromeul
posté 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" huh.gif ?


--------------------
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... ".
Go to the top of the page
 
+Quote Post
paradisestation
posté 20 Dec 2012, 19:44
Message #4


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
Inscrit : 22 Feb 2005
Lieu : Charente
Membre no 33 643



Non, je les ai éliminés! wink.gif
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 
Go to the top of the page
 
+Quote Post
CB1NOF
posté 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
Go to the top of the page
 
+Quote Post
paradisestation
posté 25 Dec 2012, 06:38
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
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 
Go to the top of the page
 
+Quote Post
paradisestation
posté 10 Dec 2014, 08:47
Message #7


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
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 
Go to the top of the page
 
+Quote Post
Lauange
posté 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.
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 10 Dec 2014, 20:33
Message #9





Guests






Bonsoir,

Citation (paradisestation @ 10 Dec 2014, 02:47) *
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.
Go to the top of the page
 
+Quote Post
Lauange
posté 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.
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 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
Go to the top of the page
 
+Quote Post
paradisestation
posté 23 Feb 2018, 04:33
Message #12


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 928
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 
Go to the top of the page
 
+Quote Post
baron
posté 24 Feb 2018, 23:19
Message #13


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 312
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (paradisestation @ 23 Feb 2018, 04:33) *
Je ne sais pas comment on met [Résolu] mais bon, ça l'est !
En éditant son premier message, on peut changer le titre du sujet — mais ça n'est possible que pendant un mois…

Je l'indique donc pour toi.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 10:25