Resumen del 2015

Por jueves, 31 diciembre, 2015 0 Permalink

Este 2015 ha sido un año intenso en mi vida, que empezó por rescatar a una amiga de un maltrato el 1 de enero entre amenazas, y en el que, gozosamente, también conocí a los amigos de la Matriz, a los Aesires, a los Indianos y a mucha gentuza maja 🙂

Todos los post la Enredadera que he publicado durante el 2015 tienen que ver de un modo u otro con ellos. He hecho una selección de los más significativos para mí. En algunos casos no son los que más visitas han tenido, ni los mejor elaborados, pero son los que mejor marcan épocas que este año me ha regalado, como aquellas canciones que evocarán recuerdos para siempre.

Redes de pares

La topología de diamante

El templo y las fuentes

Caos armónico

Instalar GnuSocial en una Raspberry Pi

Ofuscar el tráfico bittorrent: introducción breve

Testeo automático de conectividad en bash

Mi debut fue en el Somero 2015

Feliz 2016! 😉

Películas a la carta en línea de comandos

Por martes, 1 diciembre, 2015 0 , Permalink

Peerfilm es un script para ver vídeos en streaming en la red bittorrent. El script necesita Python 2.7 y depende del programa Peerflix, escrito en Nodejs. Para instalarlo:

#npm install -g peerflix

Una vez instalado y resueltas otras posibles dependencias, Peerfilm estará listo para utilizarse. A continuación comparto el script:

"""
   Peerfilm

   Author: Gustavo Moreno
   Email: gustavo@laenreadera.net

   Streaming P2P via bittorrent

   Depends on:
       - Peerflix

   Install Peerflix:

       - npm install -g peerflix

   This script streams films from bittorrent network. Using it is easy. Just
   enter a magnet uri in prompt or load a CSV file that contains magnet uris.

   CSV file is delimited by ';' and fields are:
        Title;Year;magnetURI

"""

import subprocess

class Films:

       def __init__(self):
          self.magnetList = []
          self.inputIsMagnetURI = False


       def selectTorrentSource(self):
          # Choose between single magnet or csv file
          sourceInput = raw_input("Enter path of CSV file or enter magnetURI: ")

          if 'magnet:?' in sourceInput:
             self.inputIsMagnetURI == True
             self.loadMangetURI(self.inputIsMagnetURI)
          else:
             self.CSVFile = open(sourceInput,"r")
             self.loadMagnetURI(self.inputIsMagnetURI)


       def loadMagnetURI(self, singleMagnet):

          if singleMagnet == True:
             self.title = 'Streaming... '
             self.magnetURI = source
          else:
             self.buildListFromFile(self.CSVFile)


       def buildListFromFile(self, CSVFile):

          peli = []

          lineas = CSVFile.readlines()
          for linea in lineas:
              peli = linea.split(";")
              self.magnetList.append(peli)


       def userSelectFilmFromList(self):
          # Prompt user to choose a film from a given list of titles

          numerationOfAvailableFilms=0
          for row in self.magnetList:
             print numerationOfAvailableFilms+1, " ", row[1], " ", row[0]
             numerationOfAvailableFilms += 1

          num_peli = int(raw_input("What film do you want to watch? "))
          self.title = self.magnetList[num_peli-1][0]
          self.magnetURI = self.magnetList[num_peli-1][2]


       def streamFilm(self):
          # Launch peerflix to VLC
          # Type 'peerflix -h' in console to see available parameters

          print "\n\n\nStreaming... ", self.title, " \n\n\n"
          subprocess.call(['/usr/local/bin/peerflix', self.magnetURI, '-v', 'peliculas/%s'%self.title])


       def play(self):

          self.selectTorrentSource()

          if self.inputIsMagnetURI == True:
              self.streamFilm()
          else:
              self.userSelectFilmFromList()
              self.streamFilm()


film=Films()
film.play()

El archivo CSV está delimitado por ; y tiene los siguientes campos:

Título;Año;Magnet

Por ejemplo:

EL corredor del Laberinto: Las Pruebas;2015;magnet:?xt=urn:btih:2813c7e559a98b8e11fd360c1af3773839bcc6dc&dn=El+corredor+del+laberinto-Las+pruebas+%282015%29.HDrip&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969

Este script lanza el reproductor VLC. Peerflix, el proceso al que llama subprocess, tiene otros parámetros como lanzar el vídeo en los reproductores omx o MPlayer.

captura de peerflix y vlc¡Saludos!