Как стать автором
Обновить

Комментарии 28

НЛО прилетело и опубликовало эту надпись здесь
Я тоже неудобства не испытывал. Было просто ощущение неудовлетворенности =)
После миранды и firefox-а (с его плагинами) в iTunes оказалось слишком мало настроек. Я был искренне удивлен.
Лично я предпочитаю работать с айтюнсом через его COM интерфейс, примерно так:
self.iTunes = win32com.client.gencache.EnsureDispatch(«iTunes.Application.1»)

allTracks = self.iTunes.LibraryPlaylist.Tracks
for i in xrange(1, allTracks.Count + 1):
  track = self.iTunes.getTrackFromCollection(allTracks, i)
Спасибо за информацию. Надо будет почитать — наверняка пригодится.
Надо думать, то же самое можно сделать и через Applescript…
Естественно. Под Win32 — COM, под OS X — Applescript.
А под Linux? =) Про Applelscript я слышал, кода пытался добавить подкасты из папки на диске в iTunes. Писали, что под OS X есть решение. В очередной раз расстроился, что пока мне мак не светит. Но потом и сам разобрался.
Решение с использованием COM наверняка страдало бы нехваткой кроссплатформенности.
Мне интересно, а как это отображается на сортировке альбомов в меню все альбомы? И что отображается в правой колонке? (где обычно алфавит, который также служит и слайдером).

При использовании других названий в сортировочных полях — алфавит и слайдер окна расходятся в порядке.

Может создать список плейлистов вида Артист — Год — Альбом, так будут работать все варианты.

Что за правая колонка? Просто я имею дело с iPod Classic. Единственный алфавит, который я там видел — это когда кучу альбомов прокручиваешь (при обычной сортировке), то он начинает скролить по первой букве названия альбомов. Только что проверил: при моей сортировке он скролит по первой букве артиста, как и должно быть. Так что все работает.

Вариант с плейлистами я сразу отмел, потому что сильно много будет мороки со всеми этими плейлистами. К тому там не будет albumart-ов, которые доставляют мне большое удовольствие =)
Аааа1!!!!11 Виндовый itunes!!!111
Благодарю за статью — очень познавательно и полезно…
Насчёт кодировки символов с диакритическими знаками — это морока только Винды, ибо:
Во первых кодировка имён файлов в FS явно не благородный utf
Во вторых, от этого глючит и сама винда (много имел дела с французской виндой, там папка Пуска имела диакритические символы — и при переводе кодовой страницы на русскую все установщики шли лесом и добавляли в папку без этого диакритического символа — как следствие ничего в Пуске не отображалось)
В третьих, уверен на 98%, смени ты кодировку перед процессом на немецкую — всё прошло бы как по маслу
Под кодировкой имел ввиду кодовую страницу, code page
Имена файлов в NTFS всегда были юникодные. Но многие программы (включая python 2.x и разные инсталляторы) используют старые системные API (например, CreateFileA), работающие с именами файлов в однобайтовой кодировке. По умолчанию эти API используют кодировку, указанную в настройках винды в качестве «языка программ, не поддерживающих юникод». Юникодные имена прозрачно для программы конвертируются в выбранную кодировку и обратно, но хитрые диакритические знаки и символы из других языков при этом сильно страдают.
Сори, был неправ, исправлюсь… Давно вдумчиво на Виндах не сидел, всё больше на Линуксах :)
А ведь верно, и частенько создатели программ выдают два вида исходников: юникодные и неюникодные… (пример — миранда) Неюникодные не работают на Вин, которые не из линейки NT — в тогдашнем api вообще не было CreateFileW и компании… Так что обычно это делают из за обратной совместимости.
Тьфу, не исходников, а бинарников! это флаг при сборке же… для умных компиляторов во всяком случае :)
На самом деле, если вы работаете с iTunes для Windows, то есть путь проще, средствами windows script и iTunes COM SDK. Пример можно посмотреть тут sfoid.habrahabr.ru/blog/81291/
Этот SDK предельно простой и довольно удобный, можно достаточно просто и гибко управлять iTunes библиотекой и дофичивать автоматизацию всего, что нужно.
Хотя ваше решение кросплатформенное, это очень хорошо, уважаю.

Что меня смущает во всех этих скриптах (и в моем, и в вашем), это низкая их интеграция со всем остальным в системе. Например, если вы обновили свою библиотеку, вам надо повторно запускать ваш скрипт руками. В этом смысле есть идея написания небольшого «демона», который будет следить за событиями в iTunes и запускать нужные скрипты. Например, в iTunes COM SDK есть событие OnDatabaseChangedEvent, т.е. обновление библиотеки iTunes (добавился альбом, появился новый подкаст и т.д.). Правда времени на этого «демона» сейчас, к сожалению, нет.
>если вы работаете с iTunes для Windows
Так и есть, но большой гордости от этого не испытываю =)

Я даже не знаю, что меня больше интересовало: решение проблемы или кодинг на Python-e. Так что своим решением я доволен. Плюс ко всему оно заполняет только теги, поэтому даже не привязано к iTunes-у. Думаю, если заливать через другой какой-нибудь менеджер, то результат будет тот же. А COM — это получится только под Windows и iTunes.

Но запуск скрипта вручную и меня смущает. Музыка у меня появляется весьма организованно, поэтому проблемы не будет запустить ее в новых папках, но все равно как-то не солидно =)
Есть более радикальный способ: поставить RockBox. :)

Честно говоря, думал лучше об исходной прошивке айпода. Самому сталкиваться с ней не приходилось. Отсутствие хронологической сортировки раздражало бы неимоверно.
Если мне не изменяет память, то только на Classic RockBox и не ставится. Честно говоря и не очень-то и хотелось.
Прикольно и просто, спасибо, может покапаюсь попозжее.
Хороший рецепт вообще.
Имеет смысл обрезать у названий альбомов «The», как делается с исполнителями.
Чтобы два альбома одного года сортировались по алфавиту.
Лично меня это обрезание «the» только сбивает. Потому что The Cranberries я воспринимаю именно как THE Cranberries и поэтому в первое время очень расстраивался, когда не находил их в конце списка =)

А если Вам это действительно надо, то берите скрипт и редактируйте =)
Меня как раз наоборот всегда смущало почему The Smiths и The Doors должны находиться рядом с Thom Yorke. И я рад поведению iTunes.

Я исключительно предложил, мне самому скрипт не очень нужен.
Прекрасно Вас понимаю. Возможно я слишком ответственно отношусь к артиклям =)
Но со временем привык и сейчас проблем не возникает.
Спасибо огромное за статью! Уже третий год являюсь счастливым обладателем айпода, и сколько бы я не гуглил на эту тему, решения проблемы не находил. А использовать дополнительные теги не догадывался… Попробую то же самое на Applescript теперь реализовать, для удобства.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации