Автор Гілка: ape+tags to flac+tags можливо?  (Прочитано 2396 раз)

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Справа в тому, що відомими мені методами(під Linux) не можливо конвертування ape у flac зі  збереженням тегів при наявності/відсутності cue файлу. Хтось знає?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #1 : 2007-09-05 21:06:05 »
А без cue ви його нормально у flac і не переженете.

Проблему тегів вирішував дуже просто. libmusicbrainz=)

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #2 : 2007-09-05 22:05:45 »
Взагалі я хотів щоби після нарізки на окремі файлі теги записилувася з cue. Програмою, а не вручну.  

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #3 : 2007-09-05 22:08:43 »
Щодо ibmusicbrainz,  багато виконавців називають пісні не тільки англійською...

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #4 : 2007-09-05 22:10:37 »
Ну, можна написати скрипт для вичитування полів з cue (він легко розпарситься) і запису тегу у flac. 5 хвилин. Про готові інструменти не чув, та й сумніваюсь, що вони існують.
« Змінено: 2007-09-05 22:11:13 від Cthulhu »

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #5 : 2007-09-05 22:15:26 »
Фігово бути не програмістом.

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #6 : 2007-09-05 23:54:53 »
Швидко і брудно:

#!/usr/bin/env python

import os
import string

def unpad(str):
    if str == '':
        return str
    else:            
        splitted = str.split(" ")
        non_empty_list = []
        for sym in splitted:
            if sym == '':
                pass
            else:
                non_empty_list.append(sym)
        unpadded_line = string.join(non_empty_list)
        return unpadded_line

def readcue(cue):
    fd = open(cue, "r")
    lines = fd.readlines()
    track_list = []
    track_params = []
    for line in lines:
        try:
            sp = line.split("TRACK")
            track = sp[1].split()[0]
            print "TRACK", track
            if len(track_params) == 0:
                track_params.append(str(track))
        except:
            pass
        try:
            sp = line.split("TITLE")
            title = unpad(sp[1].split("\r")[0].split("\n")[0])
            print "TITLE", title
            if len(track_params) == 1:
                track_params.append(title)
        except:
            pass
        try:
            sp = line.split("PERFORMER")
            performer = unpad(sp[1].split("\r")[0].split("\n")[0])
            print "PERFORMER", performer
            if len(track_params) == 2:
                track_params.append(performer)
        except:
            pass
        if len(track_params) == 3:
            track_list.append(track_params)
            track_params = []

    fd.close()
    return track_list

if __name__ =="__main__":
    from sys import argv
    cue = argv[argv.index("--cue") + 1]
    print "Using %s file for tags"%cue
    param_list = readcue(cue)
    filelist = argv[3:-1]
    print filelist

    for item in param_list:
        print item
        if len(filelist) != 0:
            filename = '\"' + filelist.pop(0) + '\"'
        command = "flac -f --tag=tracknumber=%s --tag=title=%s --tag=artist=%s %s"%(item[0], item[1], item[2], filename)
        print command
        os.popen(command)
Зберігаєте як tag.py, робите chmod +x tag.py, запускаєте як  tag.py --cue image.cue <filelist>. Краще згодовувати wav файли, бо flac-и перепише заново.
« Змінено: 2007-09-05 23:55:52 від Cthulhu »

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #7 : 2007-09-06 00:08:34 »
О дякую, заціню.

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #8 : 2007-09-06 00:31:18 »
<filelists> - це що? Один великий wav чи що?
Бо:
v@darkstar:~/tmp$ tag.py --cue various.cue various.wav
Using various.cue file for tags
PERFORMER "Various"
TITLE "Українські народні пісні"
TRACK 01
TITLE "Їхав козак за дунай"
PERFORMER "Їхав козак за дунай"
TRACK 02
TITLE "Ніч яка місячна"
PERFORMER "Ніч яка місячна"
....
TRACK 29
TITLE "Ой, чий то кінь стоїть"
PERFORMER "Ой, чий то кінь стоїть"
TRACK 30
TITLE "Гей, наливайте"
PERFORMER "Гей, наливайте"
[]
['01', '"\xb7\xc8\xc1\xd7 \xcb\xcf\xda\xc1\xcb \xda\xc1 \xc4\xd5\xce\xc1\xca"', '"\xb7\xc8\xc1\xd7 \xcb\xcf\xda\xc1\xcb \xda\xc1 \xc4\xd5\xce\xc1\xca"']
Traceback (most recent call last):
  File "./tag.py", line 69, in <module>
    command = "flac -f --tag=tracknumber=%s --tag=title=%s --tag=artist=%s %s"%(item[0], item[1], item[2], filename)
NameError: name 'filename' is not defined
v@darkstar:~/tmp$                              

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #9 : 2007-09-06 00:42:54 »
<filelists> - це що? Один великий wav чи що?
Список wav чи flac файлів (вже після виконання bchunk). Їх кількість має точно відповідати кількості записів для треків в cue файлі.



Мда-мс, а про назву альбому я й забув. Ладно...
« Змінено: 2007-09-06 00:45:05 від Cthulhu »

Відсутній grib

  • Новачок
  • *
  • дописів: 35
  • Карма: +0/-0
Re: ape+tags to flac+tags можливо?
« Відповідей #10 : 2007-09-06 01:15:44 »
Зацінив - робить. Ну а назву альбому дійсно не заповнює