Скрипты — Быстрая перекодировка музыки в единый формат
1.Имеется музыкальная коллекция, в которой музыка в разных форматах - ogg, flac, mp3.
2.Имеется смартфон от Нокии, плеер которого играет только mp3, wav и amr с midi.
3.А ещё имеется желание быстро закидывать музыку на самтрфон, не проверяя формат музыки и не заморачиваясь с перекодировкой.
Этих трёх пунктов хватило, чтобы написать небольшой скрипт на Python, который будет делать всё это за меня. Мне лишь надо закидать нужные папки с музыкой на карту памяти и запустить там этот скрипт.
2.Имеется смартфон от Нокии, плеер которого играет только mp3, wav и amr с midi.
3.А ещё имеется желание быстро закидывать музыку на самтрфон, не проверяя формат музыки и не заморачиваясь с перекодировкой.
Этих трёх пунктов хватило, чтобы написать небольшой скрипт на Python, который будет делать всё это за меня. Мне лишь надо закидать нужные папки с музыкой на карту памяти и запустить там этот скрипт.
#!python
#coding:utf8
__author__ = 'der_FeniX'
__version__ = '0.4'
__doc__ = """
Скрипт перекодировки аудиофайлов (можно и видеофайлы, если подправить
параметры для ffmpeg'а и список расширений), найденных в текущей
директории и всех её поддиректориях, если есть необходимость в
перекодировке (формат отличается от необходимого) с возможностью
перемещения перекодированных и копирования не нуждающихся в перекодировании
файлов в указанную папку.
"""
import os
from re import sub
from shutil import copy as shcopy
from sys import argv,exit
from string import atoi
dir=os.getcwd()#Текущая директория
#Расширения файлов, которые надо будет перекодировать
avail_exts = (
'.m4a',
'.ogg',
'.flac',
'.ape',
'.wma',
'.wav',
)
#В какой формат перекодировать
ext = 'mp3'
tmp_dir = '/tmp/2mp3'
bitrate = 256 #Битрейт по умолчанию
mode = 'new_dir' #По умолчанию конвертация происходит во временную папку
target_dir = False
dry_run = False
#Обработка параметров коммандной строки
if len(argv) > 1:
k = 0
for arg in argv:
k = k + 1
if arg == '-b': #Указан битрейт
if len(argv) < k+1:
print "Необходимо указать значение битрейта"
exit()
else:
bitrate = atoi(argv[k])
elif arg == '-h' or arg == '--help': #Справка
print """%s
Автор: %s Версия: %s
Использование: %s [-b bitrate] [-h|--help] [-c] [-t target_dir] [-dry_run]
-b bitrate — при перекодировании использовать битрейт равынй bitrate
-h, --help — краткая справка по использованию
-c — работать в текущей дирректории. Все файлы будут перекодироваться рядом с оригиналами, а оргиналы удаляться. Без этого параметра файлы будут кодироваться во временную директорию
-t target_dir — директория, в которую будут перемещены перекодированные файлы и скопированы файлы, не нуждающиеся в перекодировании
-dry_run — тестовый запуск. Никаких изменений производиться не будет, но будет показан ход выполнения операций и все действия, которые должны будут выполниться с указанными параметрами
"""%(__doc__, __author__, __version__, argv[0])
exit()
elif arg == '-c':
mode = 'current_dir' #Работать в текущем каталоге
print "Внимание! После конвертации исходные файлы будут удалены!"
elif arg == '-t':
#Директория, в которую будут скопированы файлы после конвертации
if len(argv) < k+1:
print "Необходимо указать целевую дирректорию"
exit()
else:
target_dir = argv[k]
elif arg == '-dry_run':
dry_run = True
#Параметры для ffmpeg
ffmpeg_cmd = ' -i "%s" -ab %dK "%s"'
print "Используется битрейт %dКб/с"%bitrate
print
def recursiveLoadFileNames(path, m = False):
list = []
#Про%D