; Vince y el mundo del software: mayo 2013

sábado, 18 de mayo de 2013

Montar fácilmente tablets y celulares que usan mtpfs

Me regalaron un tablet, y lo primero que quise hacer fue conectarlo al pc para poder copiarle archivos.
En windows 7 no tuve mayor problema, el sistema encontró y descargó automáticamente los controladores y todo funcionó bien (salvo que cuando copio un formato "no soportado" pregunta si quiero copiarlo, pero lo copia al fin y al cabo).
En linux -fedora- no hubo caso. Me lo montó automáticamente como monta cualquier cosa, y me quedó una carpeta que referenciaba a la misma (¿Carpeta-ception?).
Busqué manuales, y encontré éste, el cual era para la tablet que yo tenía (acer a500). Al principio me funcionó, aunque me preguntaba cuando intentaba copiar un formato "no soportado", le ponía que copie y listo.
El problema vino cuando después de una actualización ya no me dejaba copiar los archivos no soportados. Simplemente daba error y paraba.
Busqué y busqué y encontré el gmtp y programas parecidos. Funcionaban bien y uno podía hacer de todo; el gran problema fue su lentitud. Y es que demoraba varios minutos en responder, en los foros decían que era propio de mtp.
Buscando y buscando, llegué a la solución. Fue simple, acá os explico:
Primero instalan el programa "simple-mtpfs" de los repos. Si no está, buscan el adecuado a su distro (como me cambié a ubuntu, y en ubuntu no estaba, lo encontré en launchpad).
Luego conectan el tablet y arrancan el siguiente comando:

$ simple-mtpfs CARPETA

donde "CARPETA" es la carpeta que ustedes elegirán como punto de montaje, puede ser cualquiera, yo uso una en home y listo.
Luego para desmontar corren el comando:

$ fusermount -u CARPETA

Eso es si conectan un solo dispositivo que use mtp, en caso de usar más dispositivos conectados, tienen que especificar cuál conectarán, para ello recomiendo leerse la ayuda del comando;

$ simple-mtpfs -h

Eso es todo, y así pueden copiar/mover/eliminar/etc cualquier tipo de archivo, de cualquier extensión, y sin largas esperas.
Como dice el nombre, el "simple-mtpfs" no es más que una configuración típica del programa mtpfs, si quieres usar configuraciones "no típicas" tendrían que meterse a usar mtpfs y fuse; pero para uso cotidiano, esto estaría bien.
Recordar que si lo instalan no de los repos en distros debian-based, luego del "dpkg -i paquete", corren "apt-get -f install" para solucionar las dependencias.

sábado, 11 de mayo de 2013

Transformar mp4 a mp3 en masa en Linux

Buenas. Me he encontrado con un pequeño problema. Y es que tenía que convertir unos archivos de video MP4 a formato MP3 (extraer el audio y convertirlo a mp3 básicamente).
Lo primero que pensé fue usar ffmpeg, pero me encontré que estaba "deprecated" (descontinuado), así que busqué en google.
Me encontré con este post, pero sólo resolvía el problema de convertir 1 solo archivo; y yo necesitaba convertir una carpeta llena de muchos archivos mp4 a mp3.
Luego me encontré con este otro post, el cual convierte los mp4 a mp3, pero usa ffmpeg, el cual ya no sirve.
Así que lo que hice fue "combinar" ambos scripts en uno solo. El cual les dejo en este link de pastebin.
Para ejecutarlo, lo guardan en un archivo de texto, le ponen extensión .sh y lo ejecutan en la carpeta que contiene los archivos .mp4.
El algoritmo NO es recursivo (no entra a las subcarpetas).
Eso, y ojalá les sirva.
Si tiene un problema, miren los comentarios en los posts originales, ahí se dedican a solucionar posibles problemas.
este script deja los mp3 en la misma carpeta, para moverlos fácilmente ejecuten:
$ mv *.mp3 /carpeta/destino
Saludos.

jueves, 2 de mayo de 2013

Descargar fácilmente una lista de reproducción de youtube

¿No les ha pasado que quieres guardar una lista de reproducción para verla más tarde? Personalmente me gusta descargar videotutoriales para luego verlos en el tiempo libre o mientras viajo, por lo que necesito tenerlos descargados (rara vez tienen internet en el bus).
Para ello en Linux (y windows) hay una forma muy sencilla de hacerlo en la línea de comandos. Esto hace que sólo basta un comando para tener la lista de youtube descargada íntegramente -no sólo sirve con listas de reproducción, sino también con videos.
El comando en cuestión es:
youtube-dl
Lo instalan desde su repo favorito, o para usuarios de windows lo descargan de su página:
http://rg3.github.io/youtube-dl/download.html
Recuerda que en cualquier caso hay que tener el intérprete de Python compatible. Simplemente van a la página de python y descargan el que sea compatible según lo que dice la página de youtube-dl.
Acá la página de Python

Acá la explicación de cómo se usa:
youtube-dl OPCIONES <url>
Y las opciones más usadas son:

-f FMT
donde "FMT" es el formato que queremos descargar, una pequeña lista sería (sacada de manpages.ubuntu.com):
WebM video at 480p: 43
WebM video at 720p: 45 
H264 video in MP4 container at 480p: 18 
H264 video in MP4 container at 720p: 22 
H264 video in MP4 container at 1080p: 37 
H264 video in FLV container at 360p: 34 
H264 video in FLV container at 480p: 35 
H263 video at 240p: 5
3GP video: 17

Nota importante: en caso que no esté el formato requerido, el programa parará y no seguirá descargando; al contrario de la opción --max-quality

-t
esto es para que el título del video quede en el nombre del archivo descagado.

--max-quality webm
--max-quality mp4
Si quieres descargar en la resolución máxima simplemente, pones uno de estos dos (según el formato que prefieras) y listo.
Nota importante: esta opción te descargará SIEMPRE en la mejor calidad, y en caso que no esté el archivo de mayor calidad en el formato puesto, lo descargará en el otro formato.

--playlist-start=N
Donde empieza a descargar los videos. Si no lo pones empieza del primero (el 1).

--playlist-end=N
Donde termina de descargar los videos, si no lo pones termina en el último (el -1)

-R R
Donde R es el número de reintentos para descargar un video

-r L
Donde L es la velocidad máxima, va con sufijo de la unidad por ejemplo: 50k o 2m

-u UN
Donde UN es tu nombre de usuario
-p PW
Donde PW es tu contraseña, útil si es un video con restricción de edad o cosas así.

Personalmente lo uso algo así:
$ youtube-dl -f 45 -t http://www.youtube.com/playlist?list=PLfHn....

Fuente y para más información (en inglés), acá.