... siendo un poco más elegantes
En este post, publiqué un script para descargar automáticamente torrents de pelis en HD, peeeero como muy bien ponía, no era muy profesional. Viendo los comentarios, me he decidido a limpiar y reestructurar un poco el código y este es el resultado. No lo he puesto en el mismo post, para que poco a poco vaya muriendo y tampoco lo he borrado, porque creo que contiene comentarios muy interesantes.este es el script /usr/local/bin/busca_pelis.sh
#!/bin/bash # programado por Juanmol para http://rsppi.blogspot.com minimo=70 wget http://thepiratebay.se/search/es%7Ccastellano%7Cesp%7Cspanish/0/7/207 -O /tmp/salida_pelis2 echo $(cat /tmp/salida_pelis2 | grep -e "/torrent/" -e "magnet:" | sed 's/\ /\n/g' | grep href | grep -v "/user/" | cut -f2 -d\") | sed 's/\ /@/g' | sed 's/\//@/g' | sed 's/@@/\n/g' | sed 's/torrent@//g' | grep -i -v -f /usr/local/bin/lista_negra.txt > /tmp/filtro.txt cat /tmp/filtro.txt | sed 's/^@//g' > /tmp/filtro_tmp.txt mv /tmp/filtro_tmp.txt /tmp/filtro.txt for n in $(seq 1 $(cat /tmp/filtro.txt | wc -l )); do codigo=$(cat /tmp/filtro.txt | head -$n | tail -1 | cut -f1 -d@); peli=$(cat /tmp/filtro.txt | head -$n | tail -1 | cut -f2 -d@ | cut -f2 -d@ | cut -f1 -d\[ | cut -f1 -d\- | cut -f1 -d\( | sed 's/_/\ /g' | sed -e 's/ENG//g' -e 's/ESP//g' -e 's/Sub//g' -e 's/720p//g' -e 's/1080p//g' -e 's/BluRay//g' -e 's/DTS//g' | sed 's/\./\ /g'); magnet=$(cat /tmp/filtro.txt | head -$n | tail -1 | cut -f3 -d@); echo la peli: $peli; echo el codigo: $codigo; echo el magnet: $magnet; if [ $(cat /root/pelisdescargadas/listado.txt | grep $codigo | wc -l) = 0 ]; then echo se descargaria; echo $codigo >> /root/pelisdescargadas/listado.txt; wget "http://www.imdb.com/find?q=$peli&s=tt&ttype=ft&ref_=fn_ft" -O /tmp/busqueda_pelis 2> /dev/null; imdb_code=$(cat /tmp/busqueda_pelis | sed 's/(/\n/g' | grep -i $peli | grep "findResult" | head -1 | cut -f6 -d\" | cut -f3 -d\/) ; wget "http://www.imdb.com/title/$imdb_code/" -O /tmp/busqueda_pelis 2> /dev/null ; rating=$(cat /tmp/busqueda_pelis | grep -i ratings | grep ratingValue | cut -f 3 -d\> | cut -f1 -d\< | sed 's/\.//g'); genero=$(echo $(cat /tmp/busqueda_pelis | grep -i genre | grep tt_ov_inf | cut -f2 -d\> | cut -f1 -d\<)); echo la peli $peli tiene un rating de $rating y genero $genero; if [ "$(echo $rating)" -gt "$minimo" ]; then echo la puntuacion permite descargarla; if [ $(echo $genero | grep -i -v -f /usr/local/bin/generos_no_permitidos.txt | wc -l ) = 0 ]; then echo uno de los generos esta baneado; else echo A DESCARGAR!; transmission-remote -a "$magnet"; /usr/local/bin/encola_whatsapp.sh 666777888 "descargando automaticamente $peli con una puntuacion de $rating y genero $genero"; fi else echo la puntuacion es menor de $minimo; fi else echo ya existe, no se descarga; fi done rm /tmp/busqueda_pelis /tmp/filtro.txtPor si falla el copypaste, aquí tienes el código en pastebin. Tienes que crear también el fichero /usr/local/bin/lista_negra.txt que en mi caso contiene:
latin evangelion screener documental 3d dublado saga oacuteque son las búsquedas que ignorará y también tienes que crear el archivo /usr/local/bin/generos_no_permitidos.txt que en mi caso contiene:
Short Comedy Romance Thriller Horrorque son los géneros que no descargará. Ahora solo tienes que editar la 3ª línea del script (si quieres) y cambiarla por la puntuación mínima (sobre 100) que tiene que tener la película para ser descargada.
Los torrents se descargan por transmission, se buscan en Pirate Bay y se consultan en IMDB. Ahora solo hay que añadir la línea al archivo /etc/crontab:
*/30 * * * * root /bin/bash /usr/local/bin/busca_pelis.shque no se te olvide:
mkdir -p /root/pelisdescargadasy a disfrutar! Este post AHORA si que es la leche ...
ACTUALIZACIÓN 11/02/2013:
he actualizado el script, tenia algunos "poritos"
Un crack...
ResponderEliminarGran blog, muy buen artículo, me da ideas para probar cosas.
ResponderEliminarDe todas formas, con flexget estoy seguro que se pueden hacer esas virguerías y muchas otras, yo lo uso para descargar series copiando una plantilla que encontré por ahí y me va muy bien, alguna se me escapa, pero en general va bien quedando automatizado con el cron.
Al acabar de descargar el torrent, establezco permisos de escritura sobre lo descargado, ya que en caso de que cree una carpeta tengo que poder escribir en ella los subtítulos correspondientes, además actualizo la biblioteca de xbmc, de esa forma ya está el capítulo disponible. En el momento de la reproducción, descargo los subtítulos con el propio xbmc. Lo ideal sería automatizar también la descarga de los subs, pero eso no sé cómo hacerlo.
Holas, yo estoy montando un sistema de descarga de series similar. El flexget efectivamente da muuuuuucho de si... tengo el mismo problema con los subtitulos... basicamente no encuentro ningun sitio de subs que los envie (ya sean torrents, zips, rars o directamente el sub en .srt o .sub) por rss. seria la caña porque entonces el propio flexget me los bajaria según van saliendo... ultimamente he estado jugando con una libreria de python llamada subliminal que teoricamente se descarga subs de varios sitios... pero sin exito... te dejo el enlace al sitio por si te sirve de algo: https://github.com/Diaoul/subliminal
EliminarUn saludo.
Abundando mas en el tema subtitulos me he encontrado otra libreria en python llamada periscope que si que funciona. Se baja subtitulos de subtitulos.es y otros 4 o 5 sites famosillos mas. Y lo mas interesante para mi, se invoca desde linea de comandos, con lo que podemos hacer scripts al gusto...
Eliminarejemplo: periscope The.Following.S01E04.HDTV.x264-LOL.mp4
Si encuentra el subtitulo se lo baja y lo deja en la misma carpeta que el archivo de video...
Un saludo.
interesantisísimo, esta misma tarde lo pruebo y actualizo el script de la descarga de series. Gracias por la info.
EliminarGenial!, pero y si no quiero que sean solo en español, puedo cambiar la url del principio cierto?. también seria genial agregarle para que busque los subtitulos. intentare a ver si puedo.
ResponderEliminargracias por tus ayudas! saludos
Alguna idea de donde se pueden bajar los subtitulos también ? Gracias !
ResponderEliminaryo bajo los de las series de www.subtitulos.es , en el post de descarga automática de series lo hago de forma automática, aunque tengo que revisar el script.
EliminarGenial, muchas gracias Juan Mol. Porfin he podido implementar un script (me faltaba tiempo para intentar bien), solo he tenido que cambiar unas cositas a tu script, lo puse con alertas a gmail, le cambie la ruta
ResponderEliminar/root/pelisdescargadas/listado.txt
ya que no me daba permisos de escritura, entonces la puse en
/home/pi/pelisdescargadas/listado.txt.
y en la linea
transmission-remote -a "$magnet";
le puse para el usuario y la contraseña
transmission-remote -n usuario:contraseña -a "$magnet";
y listo funciona perfectamente
Estimado, hice tus modificaciones por las dudas, pero aun no bajo ninguna peli.
EliminarDonde puedo ver porq no esta descargando? gracias
Ademas, acabo de ver que la carpeta /media/datos/peliculasdescargadas tenia como propietario root, lo cambie por daemon-transmission. esto esta bien?
Eliminargracias !!
Pd. voy a probar bajar la exigencia a %20 para ver si descarga. !!
#!/bin/bash
# programado por Juanmol para http://rsppi.blogspot.com
minimo=70
Volvi a colocar root:root a la carpeta peliculasdescargadas.
Eliminaral busca_pelis.sh le puse permisos 777, y probe ejecutarla a mano pero da el error :
bash: /usr/local/bin/busca_pelis.sh /bin/bash<M: Interprete erroneo: No exise el fichero o el directorio.
gracias
¿interprete erroneo? Ese fallo no lo conocía ¿que distro usas? Y ponte un nombre, no me gusta hablarle a un Unknown
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarGracias por tu blog. Lo estoy leyendo para ir configurando cosas en mi RPI y es una pasada.
ResponderEliminarTambien, he puesto el script para que se alimente transmission con nuevos torrents, pero lo que si que me he dado cuenta, es que siempre intenta descargar las mismas peliculas, pero como ya estan no las descarga...
O soy yo que tengo algo mal en la configuración de los ficheros lista_negra y generos no permitidos, o veo que en pirataby hay menos peliculas que en la amule...
No te ocurre a ti eso???
De nuevo, gracias por todo así como por tu trabajo...
La inteligencia de no descargar dos veces el mismo torrent se la damos al transmission, cierto es que /root/pelisdescargadas/listado.txt estan las descargadas, pero si se cambia el nombre y se vuelve a subir ... poca inteligencia podemos tener.
EliminarEn pirate bay hay menos pelis, está claro, pero es más cómodo y seguro. La culpa de esto la tienen los trackers privados, si la gente compartiese en trackers públicos todos seríamos más felices, ya que se trata de compartir libremente, no de sacar beneficios por compartir.
pd: mensaje dedicado a los admins de los trackers privados.
Buenas Juan Mol.
ResponderEliminarUn blog excelente, me has dado varias ideas. Sólo quería comentarte algo sobre el script, que particularmente para mi es útil y cómodo al manejar varios path's en el mismo archivo y son las variables, así si tienes que cambiar el script de máquina por X razón, sólo cambias en un sitio (o rehaces de 0) pero, ya te digo, es lo que yo hago en el curro y para casa ;).
Repito fantástico blog, me has dado algunas ideas para la raspe.
Saludos
Yeah!!
ResponderEliminarYa se dejo, ahora mi problema será buscar un disco duro más grande.
Me sorprende tu creatividad y habilidad Juan Mol, ahora soy tu fan!
A ver si podeis ayudarme. Ayer conseguí que me fuera, pero cuando las descargas se ponen en el Transmission, este las pausa a los pocos segundos.
ResponderEliminarLos únicos cambios que he hecho con respecto al tutorial son la ubicación del fichero listado .txt y la ruta de donde van a ir a parar las descargas, que es un USB. El usb esta formateado en NTFS y es de 16GB
También he cambiado en el fichero de configuración settings.json esta línea: "rpc-authentication-required": false
Alguna idea?
me juego lo que quieras a que es un tema de permisos. Lanza a mano el transmission para que te vaya soltando en pantalla todo lo que hace, añade la descarga que te falla y verás exactamente el mensaje de error.
EliminarBuaaa que pasasa de blog!!! le he ido poniendo cosas a mi raspy y la verdad que van de lujo!!!
ResponderEliminarlo que pasa yo que yo no soy mucho de descargar de piratebay.... y por eso me gustaria saber si se puede hacer para descargar de algun otro tracker con user y pass...
la caña!! me encanta!!!!
un saludo!
no tengo ni quiero un tracker privado, eso de ponerle usuario, clave, condiciones, cupo ... a algo de lo que no tienes los derechos ... no va conmigo ;)
EliminarGran blog.
ResponderEliminarEste post lo tengo pendiente desde hace tiempo.
Una pregunta/idea/proposición. ¿Habría forma de buscar y descargar automáticamente las pelis que se agregan a la wishlist de IMDB? A estas se puede acceder desde un feed. También se puede configurar con IFTTT para que cuando se añada una nueva peli a la lista haga lo que sea (te lo envie por email, lo apunte a evernote etc etc etc) y que así pueda ser mas facil hacer el script. En fin, ando demasiado verde. Yo por mi parte investigaré en el tema. Pero ahi te lo propongo por si te gusta, que seguro que lo haces mejor y mas rápido.
Un abrazo!
no tiene pinta der complicado, cuando vuelva de las vacas lo hago ;)
EliminarMe encanta oír eso! Estaré vigilante!
EliminarEste comentario ha sido eliminado por el autor.
EliminarPor cierto, ya tengo tu script funcionando y me va perfecto. Solo he tenido que modificar la linea
ResponderEliminartransmission-remote -a "$magnet";
por esta otra (Poniendo mi usuario y pass, claro):
transmission-remote -a -n usuario:pass "$magnet";
A ver si consigo avanzar algo con lo que te propuse.
P.D.: Eres un fenómeno!