3ENGINE

Programación y otros cachivaches

Archivo

Página 16/104

Tecnologia

Como descargar videos de Youtube (y otros proveedores) con Youtube-dl


Existen varias aplicaciones que permiten descargar videos de youtube. (youtube-dl, cclive, clive, rtmpdump, get_flash_videos,…) Pero una de las aplicaciones mas sencillas es youtube-dl, disponible para Linux, Windows y Mac OS X. Necesitarás Python para que funcione.

descargar videos de Youtube

Para instalar youtube-dl en Ubuntu

1. Examinar https://yt-dl.org/downloads/ y localizar la carpeta mas actual. A fecha de hoy la carpeta mas actual es 2014.04.21.6:

2. Descargar la última versión de youtube-dl y dar permisos de ejecución:

$ sudo wget http://yt-dl.org/downloads/2014.04.21.6/youtube-dl -O /usr/local/bin/youtube-dl
$ sudo chmod a+x /usr/local/bin/youtube-dl

Para instalar youtube-dl en Windows

1. Muy sencillo. Ir a la página de descarga y bajar la última versión de la aplicación. La aplicación es un simple .exe

Algunos comandos útiles

1. Actualizar a la última versión (hazlo si tienes problemas para descargar) :

$ sudo youtube-dl -U

2. Averiguar que proveedores soporta youtube-dl:

$ youtube-dl --list-extractors

3. Descargar vídeos por palabra clave de youtube utiliza ytsearch. Por defecto descargará la primera coincidencia. Otra variante es ytsearchN donde N es el número de vídeos a descargar. Para descargar todos los vídeos que coincidan utilizar ytsearchall. Para buscar en google (www.google.es/videohp‎) utilizar gvsearch. Para buscar en Yahoo (http://es.video.search.yahoo.com) utilizar yvsearch :

Descargar la primera coincidencia

$ youtube-dl "ytsearch:hola soy german"

Descargar las tres primeras coincidencias:

$ youtube-dl "ytsearch3:hola soy german"

Para listar las tres primeras coincidencias sin descargar los videos añadir -s:

$ youtube-dl -s "ytsearch3:hola soy german"

4. Para descargar un vídeo en concreto (el de mas alta calidad) pasar la URL del vídeo:

$ youtube-dl https://www.youtube.com/watch?v=My2FRPA3Gf8

5. Para ver resoluciones y formatos soportados de un vídeo en concreto:

$ youtube-dl --list-formats https://www.youtube.com/watch?v=My2FRPA3Gf8

Si por ejemplo el resultado es el siguiente:

[info] Available formats for My2FRPA3Gf8:
format code extension resolution  note 
171         webm      audio only  DASH webm audio , audio@ 48k (worst)
140         m4a       audio only  DASH audio , audio@128k
160         mp4       144p        DASH video , video only
242         webm      240p        DASH webm 
133         mp4       240p        DASH video , video only
243         webm      360p        DASH webm 
134         mp4       360p        DASH video , video only
244         webm      480p        DASH webm 
135         mp4       480p        DASH video , video only
247         webm      720p        DASH webm 
136         mp4       720p        DASH video , video only
248         webm      1080p       DASH webm 
137         mp4       1080p       DASH video , video only
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

Para descargar el formato identificado por el 18 (mp4 640×360):

$ youtube-dl -f 18 https://www.youtube.com/watch?v=My2FRPA3Gf8

7. Para mostrar la ayuda en linea:

$ youtube-dl --help



Tecnologia

Access 2010: solución al error «You do not have exclusive access to the database at this time»


Al trabajar con Access 2010 puede aparece un mensaje de error You do not have exclusive access to the database all this time como este:

You do not have exclusive access to the database at this time

Pero el problema es que este mensaje de error a veces se produce incluso aunque haya un único usuario en la base de datos. Para resolver este error te propongo dos posibles soluciones.

Solución 1

Ir al apartado Configuración del Cliente (Client Settings) dentro del Opciones (Access Options) y en la sección Avanzadas (Advanced) seleccionar el modo Compartido (Shared):

You do not have exclusive access to the database at this time

Solución 2

Si la primera solución no fue efectiva o ya tenias seleccionado el modo compartido. Entonces es posible que tu base de datos Access esté corrompida. Para intentar recuperar lo que haremos es importar la base de datos a una nueva base de datos Access en blanco:

Primero crear una base de datos en blanco, vete a la pestaña Datos Externos (External Data) y selecciona la opción de importar de una base de datos Access:

You do not have exclusive access to the database at this time

Selecciona la base de datos que da problemas:

You do not have exclusive access to the database at this time

Y por último importa todos los objetos:

You do not have exclusive access to the database at this time

 




Tecnologia

Cómo descargar una imagen de una página y mostrarla en un Winform de .NET


A veces puede interesar descargar de internet imágenes u otros recursos a local. Aquí te explico cómo descargar una imagen de una página y mostrarla en un Winform de .NET con la particularidad que en ningún momento guardamos la imagen en disco:

Código para descargar una imagen de una página y mostrarla en un Winform:

private void buttonCargar_Click(object sender, EventArgs e)
{
string[] imagenes = new string[] 
{"https://i.ytimg.com/vi/r5zVP6tmvRQ/mqdefault.jpg", 
 "https://i.ytimg.com/i/ZJ7m7EnCNodqnu5SAtg8eQ/1.jpg",
 "https://i.ytimg.com/vi/oY6ZMx_lVks/default.jpg",
 "https://i.ytimg.com/vi/REd0FYX8Zno/default.jpg",
 "https://i.ytimg.com/vi/ZJxN1swBnhg/default.jpg"};

using (WebClient client = new WebClient())
{
this.imageList.ColorDepth = ColorDepth.Depth32Bit;
this.imageList.ImageSize = new Size(60, 50);

foreach (var imagen in imagenes)
{
Byte[] byteImage = client.DownloadData(imagen);
MemoryStream memoryStream = new MemoryStream(byteImage);
Image image = Image.FromStream(memoryStream);
this.imageList.Images.Add(image);

ListViewItem item = new ListViewItem();
item.ImageIndex = imageList.Images.Count - 1;
item.SubItems.Add(imagen);
this.listView.Items.Add(item);
}
}
}

Del ejemplo tenemos una lista de cinco imágenes a descargar:

  • 12-13: indica la profundidad de color y tamaño de la imagen a guardar en imageList
  • 17-20: descarga la imagen y la guarda en imageList
  • 22-25: añadir la imagen y la url en listView

El resultado es el siguiente:

descargar una imagen de una página y mostrarla en un Winform

Podeis obtener las fuentes del ejemplo desde aquí .




Tecnologia

Cómo añadir un video de Youtube en un Winform de .NET


Pasos para añadir un video de Youtube a un Winform de .NET

1. Añadir una referencia a la libreria Shockwave Flash. Para ello, ir la opción Agregar referencia, pestaña COM y seleccionar el componente Shockwave Flash:

añadir un video de Youtube en un Winform 1

Ahora nuestro proyecto tienen una referencia ShockwaveFlashObjects

añadir un video de Youtube en un Winform 2

2. Añadir al cuadro de herramientas el control Shockwave Flash Object. Para ello, ir al cuadro de herramientas, click derecho del ratón y seleccionar la opción Elegir elementos. Una vez se abra el diálogo (tarda un poco) ir a la pestaña Componentes COM y seleccionar el componente Shockwave Flash Object:

añadir un video de Youtube en un Winform 3

Si todo ha ido bien, aparecerá en el cuadro de herramientas un nuevo elementos:

añadir un video de Youtube en un Winform 4

3. Añadir el control Shockwave Flash Object a un formulario y un botón que necesitaremos para hacer una prueba. Añadir el siguiente código al evento click del botón:

        
private void bPlay_Click(object sender, EventArgs e)
{
   axShockwaveFlash1.LoadMovie(0, "http://www.youtube.com/v/VzEHmcABGUU");
   axShockwaveFlash1.Play();
}

4. Si todo ha ido bien este será el resultado:

añadir un video de Youtube en un Winform 5