суббота, 3 июля 2010 г.

О PowerShell и аудио-книгах

Не знаю как вы, а я аудио-книги «читаю» с удовольствием. Причём подсел я на это дело из-за пробок, наверное. Жалко же времени.

Но даже купив диск, я именно диск не слушаю, неудобно — позицию не запоминает проигрыватель при смене дисков. Это чрезвычайно неудобно. Куда удобнее для этих целей iPhone/iPod. Всё запоминается и стартуешь с того места, где закончил. Да и продолжить «чтение» на компьютере можно именно там, где закончил на устройстве — достоинство инфраструктуры Apple налицо. Хотя iTunes - штучка на очень особенный вкус.

Но тут у меня регулярно возникают проблемы с сортировкой, номера треков производители дисков в теги не записывают, а без этого Тунец, и iPod вслед за ним — теряются.

Потому я обратил свой взор в сторону PowerShell, зная, что штука мощная. Результатом явился предлагаемый вашему вниманию несовершенный, но работающий скрипт.


$TagLib = "C:\Libraries\taglib-sharp.dll"
[System.Reflection.Assembly]::LoadFile($TagLib)
$trackNum = 1
get-childitem *.mp3 | foreach { 
 $Media  =  [TagLib.File]::Create($_.fullName)
 $Media.Tag.Track = $trackNum
 $trackNum = $trackNum + 1
 $Media.Save()
}


Для того, чтобы он корректно отработал, вам нужно перейти в папку с интересующим списком файлов. Добавить параметры начального номера трека и рабочего каталога совсем несложно, попробуйте это сделать сами.

Добавлю, что запускать скрипт нужно ДО того как вы добавите треки в iTunes.

Скриншот папки до применения скрипта

и после:


Читайте больше. Да, чуть не забыл — вам нужно скачать библиотеку taglib, которой не только mp3 по плечу.