iTunes, Apple TV · 4 min read · Nov 18, 2025
Автоматическое обновление фотографий в iTunes для Apple TV
Q: Я нашел вашу статью на прошлой неделе о обновлении фотоальбомов на Apple TV, и я в аналогичной ситуации. Я пользователь Mac, но предпочитаю использовать папки для своего Apple TV, так как хочу быстро добавлять новые фотографии, не проходя через iPhoto. Я также оставляю свой iMac и iTunes включенными все время, что, как я понял из вашей статьи, и является причиной, по которой я не вижу новые фотографии. Есть ли способ автоматически обновлять мои фотографии через AppleScript или что-то, что было бы проще, чем заходить и настраивать параметры общего доступа каждый раз, когда я добавляю что-то в свои фото папки? Я видел несколько советов по настройке iTunes для автоматического перезапуска по расписанию, но я не хочу этого делать, потому что я часто загружаю новые материалы или использую Apple TV для просмотра или прослушивания чего-то из iTunes.
– Патрик

A: Это действительно возможно через AppleScript; это немного неудобно, так как использует функцию, известную как “GUI Scripting”, которая в основном просто выбирает обычные параметры iTunes от вашего имени, но это выполняет задачу.
К сожалению, ни одна из функций обмена фотографиями в iTunes не доступна напрямую для AppleScript, поэтому нам приходится манипулировать элементами управления iTunes напрямую. Чтобы разрешить AppleScript делать это от вашего имени, сначала необходимо зайти в приложение “Системные настройки” OS X и выбрать опцию Включить доступ для вспомогательных устройств в настройках Универсальный доступ.
Эта опция позволяет AppleScript напрямую получать доступ к элементам пользовательского интерфейса в приложениях на вашем Mac. После того как вы это сделаете, можно использовать AppleScript, подобный следующему, чтобы обновить ваши фото папки в iTunes, просто пройдя через шаги открытия диалогового окна Выбрать фотографии для общего доступа, изменения некоторых параметров и затем закрытия этого окна.
tell application "System Events"
if my appIsRunning("iTunes") then
tell process "iTunes"
# Открыть настройки общего доступа к фотографиям из меню "Дополнительно"
click menu item "Choose Photos to Share…" of menu ¬
"Advanced" of menu bar item "Advanced" of menu bar 1
# Переключить статус флажка "Включить видео", чтобы заставить изменить
click checkbox "Include videos" of scroll area 1 of window "Photo Sharing Preferences"
click button "Apply" of window "Photo Sharing Preferences"
# Снова переключить статус флажка "Включить видео", чтобы вернуть его к исходной настройке
click checkbox "Include videos" of scroll area 1 of window "Photo Sharing Preferences"
click button "Apply" of window "Photo Sharing Preferences"
# Закрыть окно настроек общего доступа к фотографиям
click (first button of window "Photo Sharing Preferences" whose subrole is "AXCloseButton")
end tell
end if
end tell
on appIsRunning(appname)
tell application "System Events" to (name of processes) contains appname
end appIsRunning
Встроенные комментарии в скрипте выше описывают, что он делает. Вкратце, мы подтверждаем, что iTunes запущен, и если это так, просто переключаем опцию Включить видео, чтобы заставить iTunes повторно прочитать коллекцию фотографий. Опция Включить видео переключается второй раз, чтобы вернуть ее к исходной настройке перед закрытием окна. Обратите внимание, что если вы обычно не включаете видео в свои фото папки, вы можете удалить этот второй раздел, так как не имеет значения, установлена ли опция Включить видео или нет.
Если iTunes в этом случае не запущен, скрипт ничего не делает, так как запуск iTunes все равно обновит фото папки, фактически делая остальную часть скрипта избыточной.
Чтобы использовать скрипт, вы можете просто выбрать его запуск вручную, сохранив его в редакторе AppleScript как “Приложение”, которое вы затем можете разместить в удобном месте — например, на рабочем столе или в доке — и просто запустить, щелкнув по нему.

В качестве альтернативы вы можете настроить скрипт на выполнение либо по расписанию, либо как действие папки, которое срабатывает каждый раз, когда вы вносите изменения в одну из своих фото папок.
Настройка вашего скрипта для выполнения по расписанию проще всего и прозрачнее всего осуществляется с помощью стороннего утилиты Lingon ($3), однако также возможно запланировать его как повторяющееся событие iCal с типом оповещения “Запустить скрипт”.

Другой способ подойти к этому — настроить скрипт для выполнения как Действие папки против любых папок, которые вы обычно используете для фотографий. Это сначала требует очень небольшого изменения в приведенном выше AppleScript, чтобы добавить соответствующие обработчики действия папки, следующим образом:
В начале скрипта добавьте…
on adding folder items to this_folder after receiving added_items
tell application "System Events"
if my appIsRunning("iTunes") then
tell process "iTunes"
…
…
…и внизу вставьте:
…
…
end tell
end adding folder items to
on appIsRunning(appname)
tell application "System Events" to (name of processes) contains appname
end appIsRunning
Затем вам нужно сохранить скрипт в папке ~/Library/Scripts/Folder Action Scripts, и вы должны быть в состоянии ассоциировать скрипт с соответствующей папкой, щелкнув правой кнопкой мыши на папке в Finder и выбрав Сервисы, Настройка действий папки…

Обратите внимание, что действия папки по умолчанию не включают подпапки, поэтому вам нужно будет ассоциировать скрипт с каждой папкой, в которую вы планируете регулярно добавлять фотографии. Кроме того, изменения в скрипте выше будут инициированы только при добавлении новых элементов в вашу папку фотографий; если вы хотите, чтобы скрипт также выполнялся при удалении элементов, вам нужно будет добавить еще одну копию основного блока кода с обработчиком on removing folder items from this_folder after losing removed_items. Это оставлено как упражнение для читателя, или вы можете просто скачать полную версию скрипта, готовую к использованию в качестве действия папки.
Get new posts in your inbox
No spam. Unsubscribe anytime.