; Vince y el mundo del software: diciembre 2013

miércoles, 25 de diciembre de 2013

Descargar cursos de coursera y dejarlos como a mi me gusta

Tras encontrar el script para descargar cursos de edx, encontré otro para cursos de coursera. Dejo acá el link a la página, recuerden instalarlo con pip, que es más fácil; ahí mismo sale la info.
Para usarlo basta con leer la información; pero para no dejar tan pelado este post, les doy una ayuda en español:
Para descargar un curso:
$ coursera-dl -u <correo electrónico> -p <password> -n "txt" <dirección curso>
el -n "txt" es para ignorar los txt, es opcional, pero yo lo uso porque no quiero que me descargue los txt.
La dirección del curso es la última parte de la url. La url de un curso es de la forma:
https://class.coursera.org/<dirección curso>
por ejemplo:
https://class.coursera.org/insidetheinternet-003
entonces la "dirección curso" es: insidetheinternet-003
Más información y para ayuda:
$ coursera-dl -h

Todo bien ahí. Pero el problema es que descarga cada video en una carpeta separada, junto a los subtitulos, ppt, pdf, etc. Pero personalmente me gusta tener todos los videos de una semana juntos, junto a su subtitulo correspondiente.
Para lograr eso, creé un script en bash, que mueve los .mp4 y .srt a la carpeta anterior.
Para ilustrarlos, al usar el script "coursera-dl" queda de la siguiente forma:

dirección curso
├── Semana 1
│   ├── Video 1 Semana 1
│   │   ├── Diapos Video1 Semana 1.pdf
│   │   ├── Diapos Video1 Semana 1.ppt
│   │   ├── Video1 Semana1.mp4
│   │   └── Video1 Semana1.srt
│   ├── Video 2 Semana 1
│   │   ├── Diapos Video2 Semana 1.pdf
│   │   ├── Diapos Video2 Semana 1.ppt
│   │   ├── Video2 Semana1.mp4
│   │   └── Video2 Semana1.srt
├── Semana 2
│   ├── Video 1 Semana 2
│   │   ├── Diapos Video1 Semana 2.pdf
│   │   ├── Diapos Video1 Semana 2.ppt
│   │   ├── Video1 Semana2.mp4
│   │   └── Video1 Semana2.srt
 etc...

 Luego de usar mi script, queda así:

dirección curso
├── Semana 1
│   ├── Video 1 Semana 1
│   │   ├── Diapos Video1 Semana 1.pdf
│   │   └── Diapos Video1 Semana 1.ppt
│   ├── Video 2 Semana 1
│   │   ├── Diapos Video2 Semana 1.pdf
│   │   └── Diapos Video2 Semana 1.ppt
│   ├── Video1 Semana1.mp4
│   ├── Video1 Semana1.srt
│   ├── Video2 Semana1.mp4
│   └── Video2 Semana1.srt
├── Semana 2
│   ├── Video 1 Semana 2
│   │   ├── Diapos Video1 Semana 2.pdf
│   │   └── Diapos Video1 Semana 2.ppt
│   ├── Video1 Semana2.mp4
│   └── Video1 Semana2.srt
 etc...

El script es bastante sencillo, y se los dejo En este link. Además, lo dejo acá para que lo vean. Pueden modificarlo para sus propósitos personales:

#!/bin/bash
IFS=$'\x0A'$'\x0D'
salida=$(ls -F | grep /)
for carpetai in $salida
do
 cd $carpetai
 find -regextype posix-egrep -regex ".*(mp4|srt)$" |xargs -I{lecciones} mv "{lecciones}" .
 cd ..
done

sábado, 21 de diciembre de 2013

Ver la duración total de una lista de reproducción en linux con VLC

Hola nuevamente, hoy es por partida doble!
Resulta que quería poder saber la duración total de un conjunto de videos sin tener que sumarlos uno a uno, ya que eran muchos (más de cien descargados con edx-dl.py, vean la entrada anterior).
Busqué y busqué y lo único que encontraba era que en el nuevo Windows Media player se podía... ¡Pero yo uso Linux! Intenté instalar el WMP pero fue peor, ni con crossover ni con wine pude hacerlo.
Así que busqué en inglés en google, y me encontré con un addon para el vlc que da justamente esa funcionalidad.
El link está en esta dirección. Y acá el link de respaldo (arreglado) (por si viene un tornado y destruye los servidores de vlc).
Para hacerlo funcionar deben hacer lo siguiente:
-Copiar el texto y pegarlo en un documento de texto con el nombre "playlistduration.lua" (sin el ".txt"). Si lo hacen desde pastebin, recordar copiarlo desde el "RAW Paste Data".
-Luego, si están en linux, copian el archivo a:
/home/<usuario>/.local/share/vlc/lua/extensions/
A mi me quedó así:
/home/vincegeratorix/.local/share/vlc/lua/extensions/playlistduration.lua
Y violá. Luego lo único que tienen que hacer es en una lista de reproducción, clickar el menú "Ver" y luego en  "Playlist Duration", y verán la duración total.

Descargar videos de edx y más

Alerta: El script de edx-downloader ha sido actualizado y no es compatible con la versión mostrada acá, por lo que la versión de acá no funciona ahora. Este post tiene sólo fines históricos. No me he dado el tiempo de modificar el script nuevo, y nada presagia que lo haga, al menos en el futuro cercano.

Hola, dejé botado este blog un tiempo, y es que no había mucho que contar. Pero acá estoy de vuelta.
El tema de ahora es simple: Resulta que soy un ávido seguidor de los moocs (Cuando me queda tiempo libre), dígase coursera, udacity, edx, y en español, miríadax.
En Coursera se puede descargar el material fácilmente, lo cual me sirve para verlo en mi tablet mientras viajo, o cuando no tengo internet o lo estoy usando para otra cosa. Sin embargo, el resto de páginas no tiene una forma fácil de descargar el material, al menos no a simple vista. Eso hasta que me encontré con el edx-dl.py, un script en python para descargar vídeos con sus subtitulos respectivos, de los cursos que uno está inscrito, y las semanas que uno escoga (Poniéndole números consecutivos de dos dígitos). Dejo el script en Este Link, y como respaldo, Acá también en pastebin; aunque recomiendo usar el link original para darle más descargas al autor. Para descargarlo de la web del autor deben hacer un clone al git del autor, para ello, pon en la consola (en linux):
git clone https://github.com/shk3/edx-downloader.git
Debes tener instalado git.
El script es muy bueno, pero le encontré cosas que no me gustaron:
Cuando uno está descargando, y de repente falla, se apaga el pc, se corta la conexión, etc, hay que empezar de nuevo el script, poniendo el usuario, contraseña, y esperar que cargue toda la información (si son muchas lecciones puede tardar varios minutos). Claro que los vídeos y subtítulos descargados no los descarga nuevamente, pero sí que los revisa uno por uno (al igual que mi script).
¿Mi solución? Pues estuve metiéndole mano al script y logré lo siguiente:
-Un script para descargar los subtítulos solamente, ya sea de youtube como de edx, con los números consecutivos de 3 dígitos. Además muestra en consola todos los links de youtube.
-Otro script que toma un archivo con los links de youtube y los descarga con las opciones que uno le especifique, y con los correspondientes números consecutivos de 3 dígitos.
Dejo En Este Link el script para los subtitulos con los números consecutivos.
Y En Este Otro Link el otro script para descargar de youtube los videos con los números consecutivos.
Para ejecutar cualquiera, deben tipear en la consola:
python "nombre del script"
En "nombre del script" basta arrastrar el script si es que usan un emulador de consola que permita el drag and drop.
Espero les sirva, saludos!