YouTube desde PowerShell
Hoy en Stackoverflow en español, dentro del tag PowerShell encontré una consulta sobre la posibilidad de realizar búsquedas en YouTube desde la consola y allí poder comenzar a mirar videos relacionados a lo que interesaba buscar, simplemente ejecutando una única función desde la consola.
De lo anterior surgió este post para compartirlo con más detalles y cómo llegué a la función final (que por cierto va a estar al final del post).
Lo primero de lo que voy a hablar es sobre como trabajar directamente con Internet Explorer, u otro navegador (para el post se utilizó IE). Para ello tenemos un cmdlet llamado New-Object, que permite generar objectos como indica el nombre. Puntualmente utilizamos esta función para crear una instancia del objecto COM que representa la aplicación Internet Explorer. Adicional a esto, es posible utilizar el método Navigate2 para definir la URL a la que queremos navegar y definimos el valor de la propiedad Visible en $True para que la aplicación sea visible:
A pesar de tener ya el navegador junto con el acceso a la web que nos interesa, debemos implementar un mecanismo que nos permita esperar a que termine de cargar la página antes de seguir trabajando. Lo anterior podemos resolverlo utilizando un simple while y Start-Sleep mientras se encuentre el estado Busy:
Ahora que tenemos este gran avance, debemos conocer como hay que hacer para interactuar con los campos de búsqueda; el campo donde ingresamos el valor de la búsqueda y el botón para realizarla. Esto lo vamos a realizar por medio de las herramientas de desarrollador. Accedemos a ellas desde el navegador con la tecla F12:
Usando las Dev Tools vamos a poder encontrar la información que necesitamos sobre los elementos con los que debemos interactuar. Para ello vamos a seleccionar la barra de búsqueda y hacemos clic derecho sobre ella para seleccionar la opción Inspect element. Como resultado de lo anterior, dentro de las Dev Tools vamos a ver resaltado un bloque de código, que corresponde al elemento de la web (barra de búsqueda). En la siguiente imagen se resalta con verde el valor que nos interesa para trabajar:
Ese valor resaltado en verde es el Id del elemento, el cuál es único. Nos sirve para poder identificarlo dentro de la página web, de la siguiente manera:
Ahora vamos a hacer lo mismo para el botón de búsqueda y adicionamos, al bloque anterior, el valor que nos interesa buscar en Youtube:
Y listo! Resta sumar todo en una función e invocar el método click() como se detalla en el siguiente bloque para que todo funcione correctamente:
Al ejecutar la función e invocarla de la siguiente manera:
Vamos a obtener lo siguiente:
Happy scripting!
Comments