Автоматизация рутины в OS X. Урок 20. iTunes. Собираем информацию о плейлисте

Автоматизация рутины в OS X. Урок 20. iTunes. Собираем информацию о плейлисте

В наших уроках мы рассказали практически обо всех приложениях, с которыми может работать JXA. Сегодня дошла очередь до iTunes. Мы научимся управлять проигрыванием записей в плейлисте и автоматически собирать информацию о музыкальной коллекции.

Что мы будем делать?

Соберем информацию о каждом треке активного плейлиста и запишем ее в электронную таблицу. Эти данные можно использовать для углубленного анализа музыкальных вкусов владельца плейлиста: дождался пока друг выйдет на пять минут, запустил на его компьютере скрипт, скинул полученную таблицу на флешку и после несложных статистических вычислений ты знаешь о его предпочтениях все.

Куда писать автоматизирующий код?

  1. Открыть программу «Редактор скриптов» (Программы -> Утилиты).
    Снимок экрана 2015-10-10 в 21.02.41
  2. В верхнем меню выбрать Файл -> Новый.Снимок экрана 2015-10-10 в 21.08.11
  3. На переключателе языков выбрать JavaScript.

Снимок экрана 2015-10-10 в 21.11.37

Основные приемы взаимодействия iTunes и JXA

Приведем несколько простейших примеров управления проигрыванием текущего трека:

// Кладем в переменную приложение iTunes
iTunes = Application('iTunes');
// Ставим текущий трек на паузу
iTunes.currentTrack.pause();
// Ждем шесть секунд
delay(6);
// Продолжаем воспроизведение
iTunes.currentTrack.play();
// Ждем 10 секунд
delay(10);
// Останавливаем воспроизведение
iTunes.currentTrack.stop();
// Переходим на предыдущий трек (после этой команды воспроизведение включается автоматически)
iTunes.previousTrack();
// Ждем 15 секунд
delay(15);
// Переходим к следующему треку (после этой команды воспроизведение включается автоматически)
iTunes.nextTrack();

Как записать информацию обо всех треках текущего плейлиста в электронную таблицу?

А теперь перейдем к основной части статьи. Перед тем, как запускать нижеприведенный скрипт необходимо убедиться, что iTunes открыт и включено воспроизведение нужного плейлиста.

// Кладем в переменную приложение Numbers
Numbers = Application('Numbers');
// Создаем новую электронную таблицу
var newExcel = Numbers.Document().make();
// Кладем в переменную текущую таблицу
var sheet = newExcel.sheets[0];
var table = sheet.tables[0];
// Заполняем шапку таблицы
table.cells["A1"].addColumnBefore();
table.cells["A1"].value="Имя трека";
table.cells["B1"].value="Альбом";
table.cells["C1"].value="Исполнитель";
table.cells["D1"].value="Битрейт";
table.cells["E1"].value="Дата добавления";
table.cells["F1"].value="Год записи";
table.cells["G1"].value="Номер трека в альбоме";
table.cells["I1"].value="Длительность трека";
table.cells["H1"].value="Жанр";
//Кладем в переменную приложение iTunes
iTunes = Application('iTunes');
// Обходим по циклу все треки текущего плейлиста
for (i=0;i<=iTunes.currentPlaylist.tracks.length-1;i++)
{
   cellIndex=i+2;
   // Записываем имя текущего трека
   table.cells["A"+cellIndex].value=iTunes.currentTrack.name();
   // Записываем альбом, из которого взят текущий трек
   table.cells["B"+cellIndex].value=iTunes.currentTrack.album();
   //Записываем исполнителя текущего трека
   table.cells["C"+cellIndex].value=iTunes.currentTrack.artist();
   // Записываем битрейт трека
   table.cells["D"+cellIndex].value=iTunes.currentTrack.bitRate();
   // Записываем дату добаления трека в плейлист
   table.cells["E"+cellIndex].value=iTunes.currentTrack.dateAdded();
   // Записываем год записи текущего трека
   table.cells["F"+cellIndex].value=iTunes.currentTrack.year();
   // Записываем номер текущего трека в альбоме
   table.cells["G"+cellIndex].value=iTunes.currentTrack.trackNumber();
   // Узнаем длительность текущего трека в секундах
   duration=iTunes.currentTrack.duration()
   // Записываем в ячейку уже значение в минутах
  table.cells["I"+cellIndex].value=Math.floor(duration / 60) + ': ' + duration % 60;
   //  Записываем жанр текущего трека
   table.cells["H"+cellIndex].value=iTunes.currentTrack.genre();
   //Добавляем пустую строку в таблицу (!!! пустые строки и столбы в Numbers не создаются автоматически)
  table.cells["A"+cellIndex].addRowBelow();
  // Переходим на следующий трек
   iTunes.nextTrack();
}

В результате получится примерно такая таблица:

Результат выполнения скрипта собирающего данные о плейлисте

Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:

Рекомендуем владельцам Айфонов:


✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.



Добавить комментарий