El AppleScript ejemplo código , que se muestra a continuación, hace lo siguiente:
- Si Google Chrome se está ejecutando, crea una lista de cada pestaña de cada ventana .
- Busca "YouTube" en el título de cada pestaña de cada ventana en la lista .
- Si el título de una pestaña contiene "YouTube", agrega el URL de esa pestaña a una lista de URLs .
- Si la lista de URLs no está vacía, cambia el directorio a la carpeta de Descargas y luego descarga el video de cada URL en la lista de URLs , una a la vez.
- Si la lista de URLs no está vacía, muestra una notificación cuando comienza la descarga, y nuevamente cuando termina.
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
Este AppleScript código se puede utilizar en una AppleScript o Ejecutar AppleScript action en un Automator application .
Nota: El ejemplo anterior código no emplea todas las formas posibles de manejo de errores y solo pretende mostrar una de las muchas formas en que para lograr un objetivo, como descargar un video YouTube de cada YouTube pestaña en Google Chrome , con youtube-dl
. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado. Esto incluiría el uso de try
sentencias y on error
controladores según sea apropiado. Aunque, como está codificado actualmente, debería funcionar bien sin ese nivel de manejo de errores .
Si este código de ejemplo no es aceptable en lugar de su go function , puede modificar el código según sea necesario / desea realizar el objetivo final de descargar todos los videos YouTube de cada pestaña de cada ventana en Google Chrome que tienen "YouTube" en el título ( que ya hace este código ).
El PATH
pasado a un comando do shell script
es /usr/bin:/bin:/usr/sbin:/sbin
, y si youtube-dl
no está en ese PATH
, entonces incluya la ruta de acceso completa al ejecutable . Tal como está codificado en el ejemplo código , lo tengo en mi carpeta Descargas y como primero cambio de directorio , todo lo que tenía que hacer es Prefacio con: ./
También está codificado, ya que busca "YouTube" en el título de cada pestaña , si la URL no tiene la forma de , p.ej https://www.youtube.com/watch?v=
, descargará todos los videos en esa página YouTube . En otras palabras, si está en la forma de, por ejemplo. https://www.youtube.com/results?search_query=
, entonces hará mucha descarga desde esa página.
Si eso es un problema, cambie las siguientes líneas de código como se muestra:
-
Cambio: set theSearchString to "YouTube"
-
Para: set theSearchString to "youtube.com/watch"
-
Cambio: if theSearchString is in (title of thisTab as string) then
-
Para: if theSearchString is in (URL of thisTab as string) then
Entonces solo se agregan URLs en esa forma de URL a la lista de URLs para ser descargado.