#1 Le 24/12/2011, à 12: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:Utf8 -*-
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, à 19: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, à 18: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, à 11:22
- CKDevelop
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
t'es photos? Tu parle des jaquettes d'albums, je suppose.
ATags ne prend pas encore en charge les jaquettes, désolé ++
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, à 13: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, à 11: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 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, à 19: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, à 19: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, à 19:05)
Hors ligne
#8 Le 31/03/2014, à 08:41
- CKDevelop
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
...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