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.

#1 Le 24/12/2011, à 13:06

CKDevelop

[Python] ATags éditeur de tags audio en ligne de commande

salut

Dans la continuité de mon précédent script, je vous propose un petit éditeur de tag audio utilisant la library TagPy
vous pourrez éditer comme tags audio :
-track
-title
-album
-artist
-genre
-year
-comment

voici l'aide:

$ ./atags 
ATags v0.2
by David Lhoumaud <craft@ckdevelop.org>
license GNU/GPL v3
OPTIONS:
    get      Read audio tags
        atags get "file"
        return:
            |track|title|album|artist|genre|year|hms|ms;bitrate;sampleRate;channels;comment
            
    set      Write audio tag
        atags set key* "value" "file"
            * keys:
                track title album artist genre year comment

    ms2hms      Millisecondes to 00:00:00.000
        atags ms2hms millisecondes
            return:
                00:00:00.000
                
    hms2ms      00:00:00.000 to millisecondes
        atags hms2ms 00:00:00.000
            return
                millisecondes

comme vous pouvez le constater dans l'aide, il est très facile d'utiliser ce script

la source:

#! /usr/bin/env python
# -*- coding:Utf­8 ­-*-

import sys,tagpy

def ms2hms(arg):
    mili1 = int(arg) % 1000
    mili2 = int(arg) - mili1
    seconde1 = (mili2 / 1000) % 60
    minute11 = ((mili2 / 1000) - seconde1) / 60
    minute21 = minute11 % 60
    heure1 = (minute11 - minute21) / 60
    print str(heure1)+':'+str(minute21)+':'+str(seconde1)+'.'+str(mili1)
   
def hms2ms(arg):
    hours, minutes, seconds = (["0", "0"] + arg.split(":"))[-3:]
    hours = int(hours)
    minutes = int(minutes)
    seconds = float(seconds)
    miliseconds = int(3600000 * hours + 60000 * minutes + 1000 * seconds)
    print str(miliseconds)

def fms2hms(arg):
    hours, milliseconds = divmod(int(arg), 3600000)
    minutes, milliseconds = divmod(int(arg), 60000)
    seconds = float(milliseconds) / 1000
    s = "%i:%02i:%06.3f" % (hours, minutes, seconds)
    return s

def gettags(filename):
    f = tagpy.FileRef(filename)
    t = f.tag()
    tp = f.audioProperties()
    ms=tp.length*1000
    out='|'+str(t.track)+'|'+t.title+'|'+t.album+'|'+t.artist+'|'+t.genre+'|'+str(t.year)+'|'+fms2hms(ms)+'|'+str(ms)+';'+str(tp.bitrate)+';'+str(tp.sampleRate)+';'+str(tp.channels)+';'+t.comment
    return out.encode('utf-8','replace')
    
def settag(key,val,filename):
    f = tagpy.FileRef(filename)
    t = f.tag()
    if key == 'track':
        t.track = int(val)
    elif key == 'title':
        t.title = val
    elif key == 'artist':
        t.artist = val
    elif key == 'album':
        t.album = val
    elif key == 'genre':
        t.genre = val
    elif key == 'comment':
        t.comment = val
    elif key == 'year':
        t.year = int(val)
    else:
        print("""Available keys:
    track title album artist genre year comment""")
    f.save()

def aide():
    print("""ATags v0.2
by David Lhoumaud <craft@ckdevelop.org>
GNU/GPL v3
OPTIONS:
    get      Read audio tags
        atags gettags \"file\"
        return:
            |track|title|album|artist|genre|year|hms|ms;bitrate;sampleRate;channels;comment
            
    set      Write audio tag
        atags settag key* \"value\" \"file\"
            * keys:
                track title album artist genre year comment

    ms2hms      Millisecondes to 00:00:00.000
        atags ms2hms millisecondes
            return:
                00:00:00.000
                
    hms2ms      00:00:00.000 to millisecondes
        atags hms2ms 00:00:00.000
            return
                millisecondes
""")

len(sys.argv)
if len(sys.argv) <= 1:
    aide()
else:
    if sys.argv[1] == 'get':
        filename=sys.argv[2]
        print gettags(filename)
    elif sys.argv[1] == 'set':
        key=sys.argv[2]
        val=sys.argv[3]
        filename=sys.argv[4]
        settag(key,val,filename)
    
    elif sys.argv[1] == 'ms2hms':
        varg=sys.argv[2]
        ms2hms(varg)
    elif sys.argv[1] == 'hms2ms':
        varg=sys.argv[2]
        try:
            hms2ms(varg)
        except:
            print 'null'
    else:
        aide()

voilà donc pour finir  ++ et bonne fête à tous

Dernière modification par CKDevelop (Le 28/12/2011, à 20:46)


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#2 Le 28/02/2012, à 19:28

eme

Re : [Python] ATags éditeur de tags audio en ligne de commande

Bonjàour, Pourriez-vous me dire comment réduire mes photos à 60x60 pixels? merci


Avant de digiter un deb ou un sudo il faudrait lire attentivement 6 chapitres d'instruction deux fois de suite. (proverbe personnel) ... mais heureusement qu'il y a le forum !!
Sans Dieu le monde est une histoire racontée par un fou, pleine de sons et de bruits et sans aucun sens. Macbeth

Hors ligne

#3 Le 08/03/2012, à 12:22

CKDevelop

Re : [Python] ATags éditeur de tags audio en ligne de commande

eme a écrit :

Bonjàour, Pourriez-vous me dire comment réduire mes photos à 60x60 pixels? merci

t'es photos? Tu parle des jaquettes d'albums, je suppose.
ATags ne prend pas encore en charge les jaquettes, désolé wink ++


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#4 Le 08/03/2012, à 14:43

eme

Re : [Python] ATags éditeur de tags audio en ligne de commande

bonjour CKdevelop, Je parle de mes photos. Qu'est-ce que ces jaquettes dont tu parles?
Merci


Avant de digiter un deb ou un sudo il faudrait lire attentivement 6 chapitres d'instruction deux fois de suite. (proverbe personnel) ... mais heureusement qu'il y a le forum !!
Sans Dieu le monde est une histoire racontée par un fou, pleine de sons et de bruits et sans aucun sens. Macbeth

Hors ligne

#5 Le 09/03/2012, à 12:21

CKDevelop

Re : [Python] ATags éditeur de tags audio en ligne de commande

Atags est un éditeur de Tags Audio, et donc je parler de jaquette audio hmm je pense que tu n'as pas compris l'intérrer de ATags ++


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne

#6 Le 09/03/2012, à 20:11

eme

Re : [Python] ATags éditeur de tags audio en ligne de commande

Je pense avoir compris mais ne suis pas très intéressée par ce Atags. Maintenant j'ai des problèmes avec gbrainy qui ne part plus


Avant de digiter un deb ou un sudo il faudrait lire attentivement 6 chapitres d'instruction deux fois de suite. (proverbe personnel) ... mais heureusement qu'il y a le forum !!
Sans Dieu le monde est une histoire racontée par un fou, pleine de sons et de bruits et sans aucun sens. Macbeth

Hors ligne

#7 Le 14/03/2014, à 20:05

pled

Re : [Python] ATags éditeur de tags audio en ligne de commande

Merci, ça  m'a été très utile :
Remplacer une chaîne de caractère "\\" dans un tag audio en cde line

Dernière modification par pled (Le 14/03/2014, à 20:05)

Hors ligne

#8 Le 31/03/2014, à 09:41

CKDevelop

Re : [Python] ATags éditeur de tags audio en ligne de commande

eme a écrit :

Je pense avoir compris mais ne suis pas très intéressée par ce Atags. Maintenant j'ai des problèmes avec gbrainy qui ne part plus

...le rapport entre Atags et GBrainy? aucun !

pled : Oui effectivement on peu facilement remplacer chaîne de caractère par une autre en python ou en bash, assez facilement ;-)

++


Home -> Debian Jessie & Home server -> Debian Wheezy
Office -> Ubuntu 14.04 & Office server -> Ubuntu 12.04
Embedded -> Raspbian / Debian Wheezy

Hors ligne