[Mac OS X] Автоматизируем загрузку клипов YouTube

21

pic_0

Не так давно я описывал способ загрузки клипов с YouTube при помощи окна Активности в Safari. Давайте попробуем автоматизировать этот процесс при помощи AppleScript. В этом случае нам будет достаточно открыть в Safari страницу, содержащую видео и запустить скрипт, который откроет окно Активности, найдет в нем ссылку на файл videoplayback и скопирует ее в окно со списком загрузок, в результате чего файл будет скачан.

Есть один нюанс: необходимо, чтобы кнопка списка загрузок была доступна на панели инструментов Safari, для чего достаточно, чтобы этот список не был пустым:

pic_1

Если при запуске скрипта, кнопка списка загрузок не будет доступна (т.е. этот список будет пуст), скрипт предложит выход из ситуации:

pic_2

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

Итак, приступим

Запустите приложение Редактор AppleScript (ПрограммыУтилиты). Затем, в открывшееся окно скопируйте этот текст:

try
set _videoName to "videoplayback"
set _downloadButtonAvailable to true
tell application "Safari" to activate
-- delay 0.5
tell application "Safari" to set _windowName to name of current tab of window 1
tell application "System Events"
tell process "Safari"
try
set _downloadButton to item 1 of (every button whose description = "Загрузки") of tool bar 1 of window _windowName
on error a number b
set _downloadButtonAvailable to false
end try
tell menu item "Активность" of menu "Окно" of menu bar item "Окно" of menu bar 1 to click
try
window "Активность"
on error a number b
tell menu item "Активность" of menu "Окно" of menu bar item "Окно" of menu bar 1 to click
end try
-- delay 0.5
tell outline 1 of scroll area 1 of window "Активность"
set _count to count of rows
try
repeat with i from 1 to _count
tell group 1 of row i
try
try
set _triangleValue to value of UI element 1
if _triangleValue = 1 then
tell UI element 1 to click
-- delay 0.2
end if
tell text field 1 to set _value to value
if _value = _windowName then exit repeat
end try
value of text field 1
on error a number b
exit repeat
end try
end tell
end repeat
end try
set _count to count of rows
repeat with n from 1 to _count
try
tell group 1 of row n
tell text field 1 to set _value to value
if _value = _windowName then
set _row to n
set _triangleValue to value of UI element 1
if _triangleValue = 0 then tell UI element 1 to click
exit repeat
end if
end tell
end try
end repeat
set _count to count of rows
repeat with x from _row to _count
try
tell row x
tell text field 1 to set _value to value
if _value contains _videoName then
set _url to value of text field 1
if _downloadButtonAvailable = false then select
exit repeat
end if
end tell
end try
end repeat
end tell
try
_url
on error a number b
error "Ссылка на '" & _videoName & "' не найдена."
end try
if _downloadButtonAvailable = true then tell menu item "Активность" of menu "Окно" of menu bar item "Окно" of menu bar 1 to click
end tell
end tell
if _downloadButtonAvailable = false then
tell application "Safari"
activate
display dialog "Кнопка 'Показать загрузки' не активна.\n
Найдите в открывшемся окне 'Активность' выделенную строку со ссылкой. Удерживая клавишу Alt, сделайте двойной клик по этой строке для загрузки '" & _videoName & "'." with title "Загрузчик YouTube-видео для Safari"
end tell
else
set the clipboard to _url
-- delay 0.5
tell application "System Events"
tell process "Safari"
try
pop over 1 of _downloadButton
on error a number b
click _downloadButton
end try
set focused of list 1 of scroll area 1 of pop over 1 of _downloadButton to true
end tell
-- delay 0.5
keystroke "v" using command down
end tell
end if
on error a number b
if a does not contain "Пользователь удален." then tell application "Safari" to display dialog a with title "Загрузчик YouTube-видео для Safari"
end try

Нажмите кнопку Компилировать в панели инструментов. Затем нажмите комбинацию клавиш Cmd+S и в диалоге сохранения выберите папку Программы, введите название, например, GetVideo, выберите формат файла – Программа, затем нажмите кнопку Сохранить. Т.е. все действия аналогичны тем, что описаны и показаны на картинках в этой статье.

Для удобства вытащите из папки Программы вашу новую утилиту в Dock.

P.S.

Этот скрипт был найден на одном из англоязычных форумов и адаптирован мной для русской локализации. 🙂

Удачи!

21 комментарий

  1. 0
    Игорь Соловьев

    Убедительно прошу не писать, что существует более удобная программа или сервис, делающие это.
    В этой рубрике рассматриваются средства самой OS X.

    • 0

      Игорь, Вам бы на сайт добавить подсветку синтаксисе для кода добавить 🙂 а то сливается весь зеленый текст в кашу 😉 Чтоб прочитать его — приходить копировать в окно редактора скриптов etc.
      Добавьте юзабельности.
      PS Нужна помощь — обращайтесь 🙂

  2. 0

    красноглазие какое то.

  3. 0

    второе: не совсем понимаю «рассматриваются средства самой OSX»

    во-первых: официально переназовут МакОС в ОСХ в следующей версии

    во-вторых: цель любой помощи — дать наипростейший способ, а не самый красноглазый, но зато гордый «средствами самой системы».

  4. 0

    В чём красноглазие (для юзера)?? Скопировать скрипт и сделать из него ярлычок?
    автору респект

    P.S. Мака увы нет. Не линуксоид.

    • 0

      В., Каким боком Мак с Лялихом соприкосаются — представить даже не могу 🙂 Если только что Лялих как-бы относится к Юникс системам, а Мак является такой системой. Но этого ой как мало.

  5. 0
    Детектор

    Игорь не слушайте их, просто продолжайте делать то что делали, даже если одному человеку помогли уже польза.

  6. 0
    virtualpower

    А зачем загружать видео из ютюба? Не совсем понятно, на то он и онлайн сервис? Или 5 тб свободного пространства нечем забить? 🙂
    (отправлено из приложения AppleInsider.ru)

  7. 0

    Спасибо, всегда с удовольствием читаю эту рубрику — мне новичку много чего полезного!

  8. 0

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

    • 0
      Игорь Соловьев

      Роман, Это не он пишет, кто-то другой типа пунтосвитчера…
      С другой стороны никто не мешает включить его в Системных настройках (Универсальный доступ). 😉

  9. 0

    Третий способ — добавление «ss» в адрес между «www.» и «youtube.com», позволяет выбрать формат скачиваемого файла.

  10. 0

    большое спасибо за материал.
    постоянно пользуюсь вашими советами из этого топика. он самый полезный.

Авторизуйтесь Чтобы оставить комментарий