Archivo de la etiqueta: Python

Torreón antiguo una comunidad de Google Plus.

Desde el año pasado avisaron el cierre de Google Plus tal y como la conocemos. Para muchos, esta noticia pasaría sin pena ni gloria, de hecho, una de las razones de su cierre es la baja popularidad de esta red social.

Sin embargo, hubo una comunidad que me pareció necesario rescatar de la papelera de Google.

Torreón Antiguo es una comunidad que habla sobre el pasado y presente de mi terruño. Esta comunidad explota la nostalgia de los recuerdos, devela secretos de los edificios y pone el dedo en la llaga cuando debe de hacerlo.

El respaldo de Google Plus.

Recibí un correo en el que daban las instrucciones para hacer y descargar un respaldo de las distintas opciones de Google Plus. Tuve miedo de exceder algún límite de tamaño, así que hice un respaldo solamente de las comunidades, pero ¡oh decepción!, en lugar de recibir un respaldo con las imágenes y los textos, recibí una lista de enlaces a cada publicación.

Un listado de los artículos publicados en Torreón Antiguo.
El respaldo que me da Google deja mucho que desear …

No se si esos enlaces seguirán funcionando después de marzo del 2019. No me podía arriesgar a a perderlo todo, así que hice un pequeño respaldo de las publicaciones.

Para eso usé la herramienta HTTrack para hacer un respaldo fuera de línea. El respaldo no es perfecto pero algo es algo.

Para respaldar las páginas usé el listado de URL’s que me entregó Google, con un poco de paciencia el respaldo estaba más o menos listo.

Python y BeatifulSoup

El respaldo estaba hecho, pero la lista de enlaces eran por decir lo menos “poco amigables” , así que aproveché la potencia de Python y BeatifulSoup para hacer un pequeño programa que cambiara la descripción de los enlaces por los títulos de cada publicación. Hacerlo a mano era una locura.

De esa forma, queda mucho más claro el tema relacionado con cada artículo publicado.

El código en Python que logró mejorar la descripción de los enlaces.
Rapido y sucio, pero el código hizo su trabajo.

Bootstrap

Ahora solo faltaba unir todo en un mismo lugar, para eso aproveché un plantilla gratuita de Bootstrapious que son una maravilla. Se aprende mucho viendo su código.

Desde hace tiempo quería hacer algo con bootstrap y este mini-proyecto me dio la oportunidad de utilizarlo.

La portada de la página de Torreón Antiguo.
Y como fondo, La Casa del Cerro 🙂

El resultado

Poniendo todas las piezas de este rompecabezas en su lugar, solo falta subirlo a la red para que estuviera disponible y aquí lo tienen.

Cualquier corrección o comentario favor de hacérmelo saber, este fue un proyecto relámpago así que supongo que todavía se le pueden hacer ajustes.

Descargar videos de Youtube es fácil con youtube-dl

youtube-dl para descargar videos de youtube y otros sitios.


Me ha pasado que tengo que descargar videos de Youtube para poder verlos fuera de línea en mi teléfono celular. Esta tarea es muy sencilla con youtube-dl , un programa escrito en Python que se ocupa de descargar videos de Youtube y otros sitios de internet.

youtube-dl es un programa que se utiliza desde la terminal, tiene una gran cantidad de opciones, pero en este artículo sólo tocaré lo básico.

Obtener la lista de formatos disponibles de un video.

Youtube ajusta la calidad de video de acuerdo al ancho de banda disponible en el momento de la reproducción, pero a veces esto provoca descargas de archivos muy grandes. 

La opción -F permite ver la lista de formatos disponibles para su descarga.

youtube-dl -F <<URL del video>>
youtube-dl lista de formatos disponibles.
En la primer columna se muestran los códigos de los formatos.

Descargar un formato en particular.

Para seleccionar un formato en particular está la opción -f (en minúsculas) seguido del código de formato.

Por ejemplo, si se quiere descargar el formato 18,  que es un archivo de tamaño mediano quedaría así:

youtube-dl -f 18 <<URL del video>>

Antes de descargar, hagamos una prueba.

Para hacer una prueba sin descargar el video existe la opción –simulate

Esta opción se puede agregar en cualquier instrucción y te dirá si existe algún problema antes de descargar, por ejemplo:

youtube-dl -f 18 --simulate <<URL del video>>

En lugar de –simulate se puede utilizar simplemente -s tú decides.

Descargar los videos de una lista contenida en un archivo.

Supongamos que quieres descargar varios videos, puedes guardar las URL en un archivo de texto y luego decirle a youtube-dl que tome esa información para descargar los videos.

En este caso, sería la opción –batch-file , por ejemplo:

youtube-dl --batch-file='/ruta/al/archivo.txt'

Limitar el ancho de banda.

A veces es necesario limitar el ancho de banda de la descarga, para eso usamos la opción -r , por ejemplo.

youtube-dl -r 100K <<URL del video>>

Bonus: Descargar el audio de un video en formato mp3.

A nadie sorprende la cantidad de videos musicales disponibles en Youtube, pero a veces, no quieres el video, sólo quieres el audio.

También es posible, la instrucción quedaría así:

youtube-dl --extract-audio --audio-format mp3 <<URL del video>>

Conclusiones.

Los ejemplos incluidos en este artículo son los que más utilizo y son una especie de guía rápida.

Claro que no son todas las opciones que tiene este programa. Afortunadamente tiene una excelente documentación , así que si tienes dudas o curiosidad siempre puedes consultarla.

Como youtube-dl está programado en Python prácticamente se puede descargar para cualquier sistema operativo.

Imagen principal gracias a Hello I’m Nik.

Generar un archivo KML a partir de coordenadas GPS con Python

En ocasiones tengo que marcar lugares en Google Earth. Es divertido cuando son 3 o 4. Cuando son 10 o más ya es cosa seria, pero marcar más de mil puntos ya no es práctico hacerlo de forma manual.

De coordenadas GPS a KML usando Python.

Por eso decidí hacer un programa en Python que a partir de las coordenadas almacenadas en un archivo CSV pudiera generar un par de archivos KML que se abren sin problemas en Google Earth y muestran la ubicación de esos puntos en el planeta.

simpleKML y CSV

Una de las muchas ventajas de Python es que no tienes que empezar desde cero. Para importar la información del archivo usé el módulo CSV. Es muy fácil de utilizar. Al barrer el contenido del archivo, por cada coordenada se agrega su punto correspondiente en el archivo KML.

with open(archivocsv, newline='') as File:
    reader = csv.reader(File)
    for row in reader:               
        longlat = row[2], row[1]
        coordenadas.append(longlat)
        kml.newpoint(name=row[0], coords=[longlat])

Hay varios módulos para generar archivos KML en Python, pero simpleKML me pareció, haciendo honor a su nombre, el más sencillo.

Su código de ejemplo así lo demuestra:

import simplekml
kml = simplekml.Kml()
kml.newpoint(name="Kirstenbosch", coords=[(18.432314,-33.988862)])  # lon, lat, optional height
kml.save("botanicalgarden.kml")

Ahora solo tenía que adaptar ese código con la información almacenada en el archivo CSV.

Al principio me llevé un gran susto, porque el resultado me apareció en el polo sur. Y es que, para este caso, primero va la longitud y luego la latitud.

Una vez que invertí el orden de las coordenadas el resultado fue el esperado.

Ejemplo

Como ejemplo, tengo la información de 4 puntos que rodean a la Isla Guadalupe, el punto más occidental de México.

1,29.189462,-118.553373
2,29.254561,-118.124540
3,28.806708,-118.080127
4,28.777603,-118.459080
Los 4 puntos ahora se pueden ver en Google Earth.
Ahora se pueden ver en el mapa los punto 1,2,3 y 4.

El programa no solo genera los puntos, también genera un polígono (o si somos más exactos un Linear Ring).

Linear Ring conecta el perímetro de los 4 puntos y lo muestra en Google Earth.
El Linear Ring conecta el perímetro de los 4 puntos y se puede cambiar su color de relleno.

Esto lo hace en archivos KML por separado, usted elige si quiere importar un archivo u otro o ambos.

Forma de uso.

python gps2kml.py archivo.csv

Esta instrucción  genera 2 archivos KML:

archivo-puntos.kml
archivo-LR.kml

Hice una prueba y este código me hizo el favor de generar los archivos KML con información de 1800 puntos en un par de segundos  ¡A eso le llamo velocidad!. 

Espero que esta información les sea de utilidad, uno nunca sabe.

Para saber más.

Foto principal de rawpixel en unsplash.