domingo, 30 de marzo de 2014

¿Cómo subo videos a Youtube desde la Terminal?

En 1952, al inaugurar la Planta Militar de Tolueno de Tolueno Sintético en la localidad de Campana, Juan Perón expuso sobre la necesidad de tonificar la industria pesada, y explicó cómo subir videos pesados a Youtube desde la Consola Terminal en un sistema Linux.

¡Trabajadores!


Esta planta que inauguramos hoy no afrontará una solo tarea: desde la fabricación de lacas, explosivos, pinturas, adhesivos y cauchos, múltiples son los resultados que podremos obtener.
Grata es toda ocasión como esta en la cual se nos permite poner en funcionamiento la infraestructura necesaria para el crecimiento de la Nación y su industria. El bienestar del mañana será de quien domine los ciclos de producción industrial en las ramas de los petroquímicos y sus derivados. Por ello esta planta de Tolueno, con una capacidad productiva de 15.000 toneladas anuales, nos pone a la vanguardia en el mundo.

Estos medios nos permiten avanzar en esto que ahora llaman Industria Pesada, para distinguirla de los procesos productivos poco intensivos. La industria pesada nos requiere el dominio de las etapas extractivas y de procesamiento de las materias primas, y es la cual mayores ganancias ofrece al Pais. Atrás quedarán los días en los que solo cuatro vivos vivían de lo que producían medio millón de trabajadores en los campos. Hoy, unos 15 millones de argentinos se dedicarán a la producción industrial intensiva. Ese es el mundo que nos proponemos, pues así será como esos 15 millones tendrán el salario que merecen. Es eso o distribuir la tierra entre todos en partes iguales...

Ahora bien, estos movimientos intensivos de materias primas y componentes procesados no deben su exclusividad al ámbito industrial. En software también tiene problemáticas parecidas.

Por ejemplo, uno de los grandes inconvenientes o limitaciones se puede dar cuando queremos subir a Youtube pesados videos. Esto se hace mucho más patente cuando queremos hacerlo desde la Terminal. Normalmente  no es posible, pues para cargar un video en los servidores que estos señores ponen a nuestra disposición, se hace obligatorio usar un navegador gráfico.

Mas hoy, gracias al Justicialismo, esos días quedarán en el pasado, pues os enseñaré un método que hará posible a los Descamisados la carga de videos desde la Terminal, con gran efectividad y velocidad.

Tengamos en cuenta que no podremos subir cualquier formato de video, sino que es preferible que los mismos se encuentren en formato MP4, AVI, FLV, MOV o Webm. Si no cumplimos con esta premisa, podremos usar el software Handbrake para convertir los videos a formato .m4v y luego renombrar el archivo resultante para que tenga la extensión MP4, de manera que esta técnica los acepte.

Os indicaré como hacer todo lo necesario. En primer lugar descargamos el Script. Esto es un guión de comandos pensado para cargar videos a Youtube, escrito por la propia gente de Google, el Youtube-Upload. Para ello abrimos una Terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:


sudo apt-get install python2.6
mkdir ~/youtube-upload
cd ~/youtube-upload
wget https://github.com/youtube/api-samples/raw/master/python/upload_video.py --no-check-certificate


El Script anterior no funcionará por sí solo. Para que opere correctamente dependemops de un programa Cliente para la Terminal y una API (interfaz de programación) propia de Google. El motivo detrás de esta sucia idea es proveer cierta autenticación e impedir un desarrollo cuasi descontrolado de aplicaciones que usen el servicio Youtube, sin tener al menos control sobre la porción del código que hace a la subida (carga) de los contenidos al servidor. Esta conducta no es libre, pero bajo las Banderas del Justicialismo deseamos tener lo que tiene el Capitalista pero sin pagarlo. Por ello, podremos usar esta API en pos de nuestra Felicidad, verdadero fin de nuestra Doctrina.

Por ello, descargamos la API/Cliente de Google, y movemos los directorios relevantes a la carpeta donde está el guión de descarga. Desde la consola de la Terminal ingresarenos la siguiente constelación de comandos:


cd ~/youtube-upload
wget https://google-api-python-client.googlecode.com/files/google-api-python-client-1.2.tar.gz
tar xzvf google-api-python-client-1.2.tar.gz
cd google-api-python-client-1.2/
mv apiclient/ oauth2client/ uritemplate/ ..
cd
~/youtube-upload

Acto seguido debemos proceder a autenticar el guión en la Nube de Google (con nuestro usuario y contraseña de dicho servicio). Esto significa que no podremos "redistribuir" el código en otro equipo y para otro usuario pues ello no funcionaría, y esta es la explicación por la cual cada usuario ha de desarrollar su propia versión autenticada del guión. Aún así, ello es relativamente sencillo, y como Conductor os guiaré a la felicidad.

Naturalmente en esta etapa habrán de recurrir a un navegador gráfico como Chromiun o Firefox. Nos dirigimos a la URL de Proyectos de la Google Cloud (https://cloud.google.com/console/project) y procederán a loguearse con Usuario y Contraseña de Google. La página aparecerá en blanco pues normalmente no tendremos otros Proyectos de Desarrollo en nube. Crearemos uno presionando el botón CREATE PROJECT ("Crear Proyecto").
En este momento, en la web de Google Cloud crearemos el proyecto del Script cargador de videos para Youtube. El nombre y el ID de proyecto pueden tener cualquier nombre. Debemos tildar la opción "I have read and agree to all Terms of Service for the Google Cloud Platform products" ("He leido y estoy de acuerdo con todos los térmitos de servicio para los productos Google Cloud Platform"). Luego presionamos el botón Create.
Se abrirá el Panel para Nuevos Proyectos en la nube Google Cloud. En el panel derecho escogemos la solapa APIs & Auth / API. Esto nos mostrará una miríada de APIs de Google pone a nuestra disposición para activar. Escogemos la API "Youtube Data API V3" (la buscamos por orden alfabético, está casi al final de la lista) y la activamos presionando el botón "OFF".

Nos aparecerá una ventana en la cual debemos tildar "I have Read and agree both Google APIs Terms of Service and Youtube Data API v3 Terms of Service" ("He leído y acepto tanto los términos de servicio de Google APIs como de Youtube Data API v3"). Así quedará activada la API para nuestro Usuario de Google. Ello nos será evidente por un pequeño cartel que rezará "Enabled Youtube Data API v3" y a continuación la API aparecerá en la parte superior de la lista, cambiando su status a "ON".

Acto seguido debemos crear una nueva Identificación de Cliente para poder hacer uso particular del Script y de la API ya configurada para subir videos a Youtube. En el panel derecho de la web de Google Cloud escogemos la solapa Auth & APIs / Credentials. Hacemos clic en el botón CREATE NEW CLIENT ID ("Crear nueva Identificación de Cliente").

Surgirá el cuadro Create Client ID.En el apartado Application Type ("Tipo de aplicación") tildamos Installed Application ("aplicación ya instalada"), y en el apartado Installed Apllication Type ("Tipo de Aplicación Instalada") tildamos Other ("otra"). Presionamos el botón Create Client ID.

Al finalizar la creación de la Identificación de Cliente para nuestro Script personal, deberíamos recibir un Identificador (ID) con amplios códigos alfanuméricos, de manera similar a ésta:

Estos datos de identificación de aplicación nativa deben ser suministrados al Script para que este funcione. Esto lo haremos editando un archivo llamado client_secrets.json con los datos que Google Cloud ya nos ha provisto. Lo haremos desde la terminal con:

gedit ~/youtube-uploader/client_secrets.json

Esto abrirá un archivo en blanco en el editor peronista Gedit. Le pegamos el siguiente código:

{
  "installed": {
    "client_id": "xxxxxxxxxx-yyyyyyyyyyyyyyy.apps.googleusercontent.com",
    "client_secret":"ABCDXXxxxxxxxxx-CddddddddD",
    "redirect_uris": ["http://locahost", "urn:ietf:wg:oauth:2.0:oob"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}


...y reemplazamos los códigos Client ID y Client Secret por aquellos que nos acaba de suministrar Google Cloud (para evitar errores os recomiendo usar la función "copiar y pegar").

Guardamos el archivo client_secrets.json y salimos del editor Gedit (Ctrl+s y Ctrl+x).


Ya deberíamos poder subir un video a Youtube.

Ahora bien, la primera vez que hagamos el procedimiento de carga de un video con nuestra cuenta de Usuario de Google, habremos de confirmar la autenticación desde un navegador de internet; ello otorgará a nuestro usuario un Código de Verificación ("token") para autenticar automáticamente subsiguientes operaciones de subida de videos desde la Terminal. Idealmente, el navegador debería estar presente en la computadora desde donde estamos trabajando, así como un video para subir.

Por ejemplo, si tenemos un video llamado peronismo.mp4 en nuestra carpeta /Videos, y tenemos acceso a un navegador como Chromiun o Firefox, usaremos los siguientes Comandos de Organización en la Terminal:

cd ~/youtube-upload

python upload_video.py --file=~/Videos/peronismo.mp4 --title="Discurso de Perón" --description="Juan Perón pronuncia un discurso" --keywords="Juan Domingo Perón, Peronismo, Argentina" --category=22 --privacyStatus="public"

Realmente son necesarias las variables --file= que define la ruta del archivo de video propiamente dicho que querramos subir a Youtube, y la variable --privacyStatus=, que nos deja escoger entre la política a seguir a la hora de compartir este video. Esta última puede establecerse en "unlisted", "private" o "public" (video no listado, privado o público). Estas son las únicas variables "obligatorias".

Las demás variables son "opcionales, y están conformadas por:
 --title= definirá entre comillas el título del video de youtube
--description= permite agregar entre comillas una descripción.
--keywords= os dejará asignar entre comillas una serie de etiquetas, separadas por comas.
--category= refiere a un número que describe la categoría de video en Youtube. La número 22 se refiere a "Gente y Blogs". Otras Categorías disponibles son: Comedia “23″, Educación “27″,  Entretenimiento “24″,   Film & Animación “1″,  Juegos “20″,  Howto & Estilo “26″,  Música “10″, Noticias & Política  “25″,  Nonprofits & Activismo “29″, Gente y Blogs  “22″,  Mascotas y Animales “15″,  Ciencia y Tecnología “28″,  Deportes “17″, y  Viajes y Eventos “19″.

Cuando le demos Enter a este comando en la Terminal, nos devolverá por única vez un mensaje alertándonos que se abrirá un navegador (o una solapa si ya estuviese abierto):

"Your browser has been opened to visit:

    https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.upload&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=xxxxxxxxxx-yyyyyyyyyyyyyyy.apps.googleusercontent.com&access_type=offline


En dicha pestaña del Navegador podremos loguearnos a nuestra cuenta de usuario de Google (si no lo estuviésemos ya) para terminar de autorizar el guión y comenzar su uso efectivo. Debería aparecer el siguiente mensaje en el navegador:
...debemos presionar el botón Aceptar. Si todo va bien, el Navegador nos informará con el mensaje "The Authetication Flow has Completed" ("El flujo de autenticación ha sido completado"). Asimismo la Terminal nos reportará ahora:

Authentication successful.
Uploading file...


Esto indica que la autenticación ha sido exitosa y que se está cargando el video... Una vez que haya terminado de cargar el video, la terminal nos lo indicará con el siguiente mensaje:

Video id 'XXxXxxXxxxx' was successfully uploaded.


...lo cual nos pone al tanto que el video ha sido subido, y tiene el código "XXxXxxXxxxx".

Una vez que termine de procesarse, si el video es público y quisiéramos verlo en un navegador, podríamos dirigirlo a nuestro Canal de Youtube, o verlo mediante la URL  https://www.youtube.com/watch?v=XXxXxxXxxxx

De ahora en más, podremos subir videos simplemente llamando al script con el intérprete de python desde la Terminal.

cd ~/youtube-upload

python upload-video.py --file=direccion/del/video.mp4 --privacyStatus=public

Nota: Si el equipo donde estamos instalando el Script Youtube-Upload no tuviese acceso a un navegador (por ejemplo, si lo estuviésemos instalando en una Linux embebido) la primera vez que subamos un video debemos ejecutar el comando como se explicó anteriormente, pero con el siguiente parámetro al final: --noauth_local_webserver. En el ejemplo anterior, el comando sería:


python upload_video.py --file=~/Videos/peronismo.mp4 --title="Discurso de Perón" --description="Juan Perón pronuncia un discurso" --keywords="Juan Domingo Perón, Peronismo, Argentina" --category=22 --privacyStatus="unlisted" --noauth_local_webserver


Esto nos presentará el código de autorización y habremos de indicarlo en la Terminal cuando se nos solicite.

No hay comentarios:

Publicar un comentario en la entrada