]> git.phdru.name Git - audio-cdr-video.git/blob - audio/filetypes.py
Initail import
[audio-cdr-video.git] / audio / filetypes.py
1
2 def is_v1(filename):
3    mp3file = file(filename, 'r')
4    try:
5       mp3file.seek(-128, 2)
6       id3tag = mp3file.read(3)
7    except IOError:
8       id3tag = ''
9    mp3file.close()
10    return id3tag == "TAG"
11
12 def is_v2(filename):
13    mp3file = file(filename, 'r')
14    try:
15       id3tag = mp3file.read(3)
16    except IOError:
17       id3tag = ''
18    mp3file.close()
19    return id3tag == "ID3"
20
21 def is_mp3(filename):
22    import os
23    pipe = os.popen("file -- '%s'" % filename.replace("'", "'\"'\"'"), 'r')
24    result = pipe.read()
25    code = pipe.close()
26    if code <> None: # error
27       raise IOError, "error %s reading file pipe for file `%s'" % (code, filename)
28
29    result = result[len(filename) + 2:] # + ": "
30    test = "MPEG 1.0 layer 3 audio stream data"
31    return result.startswith(test)
32
33
34 def is_wav(filename):
35    wavfile = file(filename, 'r')
36    try:
37       riff_wav = wavfile.read(16)
38    except IOError:
39       riff_wav = ''
40    wavfile.close()
41    return riff_wav[:4] == "RIFF" and riff_wav[8:16] == "WAVEfmt "
42
43
44 def is_ogg(filename):
45    oggfile = file(filename, 'r')
46    try:
47       ogg_magic = oggfile.read(4)
48    except IOError:
49       ogg_magic = ''
50    oggfile.close()
51    return ogg_magic == "OggS"
52
53
54 def is_flac(filename):
55    flacfile = file(filename, 'r')
56    try:
57       flac_magic = flacfile.read(4)
58    except IOError:
59       flac_magic = ''
60    flacfile.close()
61    return flac_magic == "fLaC"
62
63
64 def is_ape(filename):
65    apefile = file(filename, 'r')
66    try:
67       ape_magic = apefile.read(4)
68    except IOError:
69       ape_magic = ''
70    apefile.close()
71    return ape_magic == "MAC "