Il codice di AppleScript , mostrato sotto, ha il seguente aspetto:
- Se Google Chrome è in esecuzione, crea un elenco di ogni scheda di ogni finestra .
- Cerca "YouTube" nel titolo di ogni scheda di ogni finestra nell'elenco .
- Se il titolo di una scheda contiene "YouTube", aggiunge l' URL di quella scheda a un elenco di URL .
- Se la lista di URL non è vuota, cambia directory nella cartella Download e poi scarica il video di ciascun URL nel elenco di URL , uno alla volta.
- Se la lista di URL non è vuota, visualizza una notifica all'avvio del download e, al termine, una volta completata.
on run
tell application "Google Chrome"
if running then
set theseURLs to {}
set theSearchString to "YouTube"
set theWindowList to every window
repeat with thisWindow in theWindowList
set theTabList to every tab of thisWindow
repeat with thisTab in theTabList
if theSearchString is in (title of thisTab as string) then
set end of theseURLs to (URL of thisTab as string)
end if
end repeat
end repeat
else
tell current application
display notification "Google Chrome is not open!"
return
end tell
end if
end tell
tell current application
if theseURLs is not {} then
display notification "Downloading YouTube Video..."
repeat with thisURL in theseURLs
do shell script "cd \"$HOME/Downloads\"; ./youtube-dl -q --no-warnings " & quoted form of thisURL
end repeat
display notification "YouTube Video Downloading Finished."
end if
end tell
end run
Questo codice AppleScript può essere utilizzato in un'applicazione AppleScript o in Esegui AppleScript azione in un'applicazione Automator .
Nota: l'esempio precedente code non impiega tutte le possibili forme di gestione degli errori e intende solo mostrare uno dei molti modi in cui per raggiungere un obiettivo come il download di un video YouTube da ciascuna scheda YouTube in Google Chrome utilizzando youtube-dl
. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto. Ciò includerebbe l'utilizzo di try
istruzioni e on error
gestori come / ove appropriato. Anche se, come attualmente codificato, dovrebbe funzionare senza quel livello di gestione degli errori .
Se questo codice non è accettabile al posto della tua funzione go , puoi modificare il codice se necessario / voluto l'obiettivo finale di scaricare ogni video di YouTube di ogni scheda di ogni finestra in Google Chrome che ha "YouTube" nel titolo ( che questo codice già fa ).
Il PATH
passato a do shell script
comando è /usr/bin:/bin:/usr/sbin:/sbin
, e se youtube-dl
non è in quel PATH
, quindi includi il nome percorso completo > em> al eseguibile . Come codificato nell'esempio code , ce l'ho nella mia cartella Download e poiché prima ho cambiato la directory , tutto ciò che dovevo fare era premettalo con: ./
Anche come codificato, perché sta cercando il titolo di ogni scheda per "YouTube", se l' URL non è sotto forma di , per esempio https://www.youtube.com/watch?v=
, scaricherà tutti i video su quella pagina YouTube . In altre parole, se è nella forma di ad es. https://www.youtube.com/results?search_query=
, quindi eseguirà molto download da quella pagina.
Se questo è un problema, cambia le seguenti righe di codice come mostrato:
-
Modifica: set theSearchString to "YouTube"
-
A: set theSearchString to "youtube.com/watch"
-
Modifica: if theSearchString is in (title of thisTab as string) then
-
A: if theSearchString is in (URL of thisTab as string) then
Quindi solo gli URL in quella forma dell'URL vengono aggiunti alla lista di URL per essere scaricato.