IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Renommer fichier audio avec le titre au lieu du nom


Sujet :

AppleScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut Renommer fichier audio avec le titre au lieu du nom
    Bonjour,
    Je m'explique

    J'ai des fichiers récupérés sur internet, des podcasts en fait.
    Les noms des podcasts sont composés de numéros. J'aimerais renommer ces fichiers avec le titre.

    J'ai fouillé sur internet avec des commandes sur terminal

    mdls /Users/xxx/106-01_02_2022-C12410S0032-21_.mp3 | grep kMDItemTitle

    qui me renvoie : kMDItemTitle = "Livre II : Developpement "

    J'aimerais renommer ce fichier "106-01...." par "Livre II développement"

    Je pense qu'avec un AppleScript c'est possible

    Merci de votre aide.

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir kbillo,
    Citation Envoyé par kbillo Voir le message
    Je pense qu'avec un AppleScript c'est possible
    Oui, c'est possible !
    Le script ci-dessous met à jour les titres des fichiers sélectionnés dans le Finder.
    Attention toutefois, mdls ne donne des résultats que sur les fichiers indexés par Spotlight avec un format adéquat.
    Par exemple si des fichiers sont en .aif, l'indexation n'inclus pas l'attribut kMDItemTitle. dans ce cas, le script ne change pas le nom.

    C'est pourquoi le script ci-dessous gère l'erreur au cas où le fichier ne contienne pas cet attribut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    -- renomme les fichiers sélectionnés avec leur titre KMDItemTitle si il existe, sinon, pas de changement du nom.
     
    tell application "Finder" to set Liste to selection
    repeat with monFichier in Liste
        set monTitre to Titre(monFichier as string)
        if monTitre is not "" then -- changement du nom
            tell application "Finder" to set name of monFichier to monTitre & "." & name extension of monFichier
        end if
    end repeat
    display alert "Traitement fait sur " & (count of Liste) & " fichiers."
     
    on Titre(F)
        log "debut titre=" & F
        set Chemin to POSIX path of F
        set AppleScript's text item delimiters to ASCII character 34 -- le guillemet
        try
            set S to do shell script "mdls " & quoted form of Chemin & " | grep kMDItemTitle"
        on error
            return "" -- erreur pas de titre
        end try
        if (length of S < 38) or ((count of text item of S) < 2) then return -- pas de titre trouvé
        return text item 2 of S
    end Titre
    Tu peux copier ce script dans l'éditeur de script, tu sélectionnes les fichiers à traiter et tu exécutes le script.
    Il est aussi possible de le copier dans une action script dans Automator.
    Si ce fichier Automator est créé en tant que Service, il sera alors accessible via un click droit dans le Finder pour traiter les fichiers sélectionnés.

    Cordialement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Super PBELL et un grand merci ça fonction très bien.

    En effet, je l'ai rajouté dans un Automator auquel j'ai rajouté avant "Demandez des éléments du Finder"
    Je vais sur le dossier et je lance la suite, il fait tout comme il faut.
    Génial

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut EN fait il ne trait qu'un fichier à la fois
    Le script fonctionne mais pour un seul fichier du dossier.
    Je dois lancer autant de fois qu'il y a de fichiers dans le répertoire en faisant à chaque fois la manip...

  5. #5
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Citation Envoyé par kbillo Voir le message
    Le script fonctionne mais pour un seul fichier du dossier.
    Je pense que cela vient de la façon dont tu as mis le script dans Automator.
    Le script d'origine traite d'un seul coup tous les fichiers qui sont sélectionnés sur le Finder, quelque soit leur nombre.

    Visiblement, dans Automator, tu demandes des éléments du Finder. Selon la façon dont tu as lié cette fonction et le script lui-même, il est possible que le script ne voit qu'un seul fichier sélectionné, d'où le problème.

    Le plus simple est de n'utiliser Automator que pour sa fonction Service. Donc tu as 2 options:

    Option1:
    Dans Automator, tu ne crées qu'une seule action "Exécuter un script AppleScript". Dans cette action tu copies/colles le script que j'ai écrit en 2 parties
    - entre les balises "on run" et "end run", tu colles le script de tell Application "Finder" to set liste to ...." et jusqu'à "display alert...".
    - après le "end run", tu colles la sous routine "on Titre" jusqu'à "end Titre".
    Tu sauvegardes ce service.

    Option2:
    Dans l'éditeur de script, tu enregistres le script tel que je te l'ai envoyé en tant qu'application (enregistrer sous).
    Dans Automator, tu ne crées qu'une seule action "Lancer l'application" et dans cette action tu sélectionnes l'application sauvegardée à l'étape précédente.

    Personnellement, je préfère l'option 2, car elle me permet de modifier le script plus simplement, sans toucher à Automator....question d'habitude !

    Cordialement

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 9
    Par défaut
    Bonjour,
    En effet la seconde solution est parfaite.
    Reste encore à trouver une solution pour rajouter un chiffre lorsqu'il trouve un titre identique car j'ai des fichiers avec des séquences qui portent le même titre mais avec la date différente, un numéro ou une date serait parfait.
    Merci PBELLE

  7. #7
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Parfait pour la partie Automator.
    Quant à la numérotation/date, c'est aussi possible par script, mais cela complique un peu les choses.

    Il faut d'abord définir une structure de nom.
    Celle-ci a des conséquences sur la façon dont tu veux/pourra trier les fichiers dans un même dossier.
    Par exemple Titre jj_mm_aaaa xx (ou xx est un numéro)
    Dans ce cas, tous les fichiers de même titre seront à la suite mais il ne sera pas facile de trier par titre et par date.

    Pour trier par titre et date, il vaut mieux construire la structure de nom suivante: Titre aaaa_mm_jj xx

    Ensuite, il faut évaluer combien de fichiers de même titre et de même date sont susceptibles d'exister:
    - si aucun, pas besoin de compteur ! (c'est ce qu'il y a de plus simple)
    - si moins de 10 le compteur xx se réduit à 1 digit x.
    - si moins de 100, le compteur doit avoir 2 digits xx.
    - ...etc

    Une fois que tu auras répondu à ces questions il suffira d'adapter le script.
    Cordialement

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2011, 15h54
  2. Importer un fichier txt avec des titres indésirables
    Par piflechien73 dans le forum VBA Access
    Réponses: 17
    Dernier message: 24/09/2010, 16h27
  3. comment je peux lire un fichier audio avec java.
    Par imad24 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/01/2010, 17h28
  4. lancer un fichier audio avec du flash
    Par tilke dans le forum Flash
    Réponses: 4
    Dernier message: 26/03/2007, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo