Una Python que sube a Youtube
viernes, 12 de noviembre de 2010Actualmente utilizo Youtube para almacenar vídeos chorra, sin importancia: de mis padres, la familia, la novia, etc… y en Blip.tv guardo los verdaderamente importantes: un gorrión comiendose una miga de pan, una nube que pasa, etc…
Dejé de usar Youtube para alojar mis vídeos a favor de Blip.tv desde que el primero anunció la inserción de publicidad sobre los vídeos. Yo, que soy de naturaleza miedica, entendí la amenaza a la primera y ese día migré los videos a Blip.tv un servicio más modesto, desarrollado sobre software libre y con una API que me permite acceder externamente a mis datos e imágenes y desde la cual construir la sección de vídeos. Con eso me sobra.
El otro día, rencoroso que soy por naturaleza, pensaba como podría colapsar el servicio de vídeos de Google, y se me ocurrió: podría hacer un script que cada noche subiera el timelapse producido con las imágenes de la cámara4.
Al final no creo que llegue la sangre al rio, me dán pena los de Google, tampoco es para tanto el rencor que les guardo ni la grandiosidad del cielo de Cartagena es tan interesante como para subir cientos de vídeos de dias inmaculadamente azules.
Por si acaso, el script para subir vídeos a Youtube ya está hecho en Python y estos son los pasos para hacerlo funcionar.
Registrate como desarrollador Google
Necesitas registar una aplicación y el developer_key asignado a dicha aplicación. Logeate desarrollador aqui: https://code.google.com/apis/youtube/dashboard/
Crea (si no tienes ya) una aplicación y copia el developer_key que te ofrece la página después de crear la aplicación.
Descarga e instala libreria GData
Descarga de GoogleCode la última versión de GData. http://code.google.com/p/gdata-python-client/downloads/list
Script Python
Copia este contenido en un archivo de texto llamado (p.ejm): subidor.py
#!/usr/bin/python
## -*- coding: UTF-8 -*-
import sys
import time
import os
from gdata.youtube import YouTubeVideoEntry
from gdata.youtube.service import YouTubeService
import gdata
import argparse
def subidor(archivo, titulo, descripcion):
if len(descripcion)<3:
descripcion_in=os.popen( "kdialog --textinputbox 'Descripción del Video' --icon youtube --name \"Subir_Youtube\" --title \"Subir a Youtube\" \""+descripcion+"\"")
descripcion=str(descripcion_in.readline())
if len(titulo)<3:
titulo_in=os.popen( "kdialog --textinputbox 'Titulo del video' --icon youtube --name \"Subir_Youtube\" --title \"Subir a Youtube\" \""+titulo+"\"")
titulo=str(titulo_in.readline())
yt_service = gdata.youtube.service.YouTubeService()
yt_service.email = 'tu email de Gmail usado como developer'
yt_service.password = 'tu contraseña de gmail'
yt_service.developer_key = 'key de tu aplicación'
yt_service.client_id = 'nombre de tu aplicacion'
yt_service.source = 'nombre de tu applicacion'
yt_service.ProgrammaticLogin()
video_meta = gdata.media.Group(
title=gdata.media.Title(text=titulo),
description=gdata.media.Description(description_type='plain',text=descripcion),
keywords=gdata.media.Keywords(text='cuaderno de campo, script, uploader'),
category=[gdata.media.Category(text='Entertainment', scheme='http://gdata.youtube.com/schemas/2007/categories.cat', label='Ocio')],
player=None )
donde = gdata.geo.Where()
donde.set_location((37.606148, -0.996256))
video_datos = gdata.youtube.YouTubeVideoEntry(media=video_meta, geo=donde)
video_archivo = archivo
video_nuevo = yt_service.InsertVideoEntry(video_datos, video_archivo)
if __name__ == '__main__':
parser=argparse.ArgumentParser(description='Sube vídeos etiquetados y titulados a youtube.')
parser.add_argument('-f', '--file', help='ruta absoluta a un archivo de vídeo', required=True)
parser.add_argument('-t', '--titulo', help='titulo del vídeo en youtube', required=False, default="Sin titulo")
parser.add_argument('-d', '--descripcion', help='Descripción del vídeo en youtube', required=False, default="Sin descripción")
argumentos=parser.parse_args()
try:
subidor(argumentos.file, argumentos.titulo, argumentos.descripcion)
except Exception, e:
os.popen( "kdialog --textinputbox 'Error: respuesta de Google' --icon youtube --name \"Subir_Youtube\" --title \"Subir a Youtube\" \""+e+"\"")
sys.exit(1)
else:
os.popen( "kdialog --msgbox 'Video subido correctamente' --icon youtube --name \"Subir_Youtube\" --title \"Subir a Youtube\" ")
sys.exit(0)
Descargar el script desde aqui con las tabulaciones de python :
http://www.trebol-a.com/publicar/youtube_upload.py.txt
En dicho script reemplaza las lineas:
18, tu email usado para logearte en Youtube
19, tu contraseña en youtube
20, la developer_key de tu aplicacion.
21 y 22, nombre de tu aplicación.
27, cambia las etiquetas que por defecto se aplican al video subido.
Las lineas 11 a 16 solicitan titulo y descripción si cualquiera de estas miden menos de 3, pero podeis eliminar estas lineas (11 a 16,ambas inclusive) sin problemas.
Uso del script
Copiad el script subidor.py a tu ~/bin y hazlo ejecutable: chmod +x subidor.py
usage: subidor.py [-h] -f FILE [-t TITULO] [-d DESCRIPCION]
Ahora podeis incorporar este script al menú de contexto del escritorio para que aparezca al hacer click derecho sobre un vídeo (lo explicado aqui es perfectamente válido)
Frikosal
#1/ 12 de November/2010 a 00:39:02
Otros comentarios de «Frikosal»
Eres un mónstruo.
Se admiten peticiones ?
Un script que cada mañana suba una foto de un directorio a facebook, junto con un título ?
Sr XX-Terror
#2/ 12 de November/2010 a 09:47:36
Otros comentarios de «Sr XX-Terror»
podría colapsar el servicio de vídeos de Google jajaja, de lo mejor que has escrito
Trebol-A
#3/ 12 de November/2010 a 10:21:49
Otros comentarios de «Trebol-A»
jajaja, es que yo, que soy de naturaleza vacilona, no pude evitarlo! :)
(Nota a despistados que acaben de aterrizar por aqui: hay un evidente tono de guasa en los primeros párrafos,... digo, por si no se notaba.... )
Frikosal, hice un script en python (multiplataforma) que hacía algo como lo que quieres, el problema es que las condiciones que impone facebook al material subido por usuarios no se las recomiendo ni a mis enemigos. ( http://www.soitu.es/soitu/2009/02/18/vidadigital/1234979844_331382.html ).
Con poco éxito, pero siempre lo he repetido, mucho cuidadito con lo que se publica allí... el avatar y poco más.
En cualquier caso lo miraré
18 de December, 2024 @ 18:18