Página 1 de 6

Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 15 Nov 2014, 00:04
por robalo
Este tema empezó en viewtopic.php?f=24&t=6212&start=30#p21742 por pikomule. He considerado continuar por aquí ya que la cosa se ha alargado un poco y se está mezclando con el tema del inicio del hilo y ya no tiene nada que ver el uno con el otro.

Dicho esto posteo mis resultados que creo van a alegrar a pikomule :D

Pues eso pikomule, ya tenemos resultados positivos y posiblemente el dirección que que te gustaría. No está todo hecho pero creo que es una buena base.

Adjunto un zip con los archivos.
El archivo 'test_channel.txt' contiene un nuevo channel para pegar en tu lista

Ya me contarás ;)

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 15 Nov 2014, 00:57
por pikomule
madre mia, que currazo. Lo intentare probar lo antes posible y te comento.

Compañeros con addons similares van a cerrar por el tema de la nueva ley de españa, nosotros tambien tenemos miedito jeje, le estoy dando vueltas para esquivar la ley, adaptando mi foro para que no haya rastro de ningun link. El que quiera descargar algo, tendra que buscarlo por torrent, yo solo indicare el nombre del torrent, ni link ni rastro del torrent en mi foro, tampoco ningun rastro nuestro dentro de las listas. Algun consejo?

Gracias de nuevo

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 15 Nov 2014, 15:49
por pikomule
Ya lo he probado, los torrents perfectos, copiar link del torrent o magnet y pegar en la lista y todo bien, muy comodo.

Vidspot no he conseguido reproducir ni tu link de ejemplo ni uno que he puesto yo.

Played.to bien

Allmyvideos, tu link bien, he puesto yo otro y no lo reproduce (http://allmyvideos.net/96ihi5iiasfz). He comprobado que no estuviese borrado.

Es posible Streamcloud tambien como servidor?

Las pruebas las he hecho en Windows XP, con Frodo

Este es el log que me sale al intentar reproducir vidspot:
15:44:47 T:2896 NOTICE: Previous line repeats 1 times.
15:44:47 T:2896 NOTICE: Thread XBPyThread start, auto delete: false
15:44:48 T:2896 NOTICE: -->Python Interpreter Initialized<--
15:44:49 T:2896 NOTICE: CommonFunctions-2.5.1
15:44:49 T:1756 NOTICE: DVDPlayer: Opening: http://d4421.vidspot.net/d/66mf6nvryq5d ... rect=false
15:44:49 T:1756 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
15:44:49 T:3052 NOTICE: Thread CDVDPlayer start, auto delete: false
15:44:49 T:3052 NOTICE: Creating InputStream
15:44:49 T:3052 NOTICE: Creating Demuxer
15:44:49 T:3448 NOTICE: Thread CFileCache start, auto delete: false
15:45:20 T:3052 WARNING: could not find codec parameters for http://d4421.vidspot.net/d/66mf6nvryq5d ... rect=false
15:45:20 T:3052 ERROR: CDVDPlayer::OpenDemuxStream - Error creating demuxer
15:45:20 T:3052 NOTICE: CDVDPlayer::OnExit()
15:45:20 T:3052 NOTICE: CDVDPlayer::OnExit() deleting input stream
15:45:20 T:1756 ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.live.streamspropk/?url=http%3A%2F%2Fd4421.vidspot.net%2Fd%2F66mf6nvryq5dh6lnzhhmxy66esmtv7akidhdbkkfrlynqgrqc5lht34tipnla5i%2Fvideo.mp4%3Fv2%26direct%3Dfalse&mode=12]
15:45:20 T:1756 NOTICE: CDVDPlayer::CloseFile()
15:45:20 T:1756 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
15:45:20 T:1756 NOTICE: DVDPlayer: waiting for threads to exit
15:45:20 T:1756 NOTICE: DVDPlayer: finished waiting
15:45:22 T:2020 NOTICE: Thread Background Loader start, auto delete: false
15:45:22 T:3848 NOTICE: Thread Jobworker start, auto delete: true

Este es el log que me sale al intentar reproducir allmyvudeos:
15:47:10 T:3204 NOTICE: Previous line repeats 2 times.
15:47:10 T:3204 NOTICE: Thread XBPyThread start, auto delete: false
15:47:10 T:3204 NOTICE: -->Python Interpreter Initialized<--
15:47:11 T:3204 NOTICE: CommonFunctions-2.5.1
15:47:12 T:1756 NOTICE: DVDPlayer: Opening: http://d4417.allmyvideos.net/d/ywme4dfo ... rect=false
15:47:12 T:1756 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
15:47:12 T:3116 NOTICE: Thread CDVDPlayer start, auto delete: false
15:47:12 T:3116 NOTICE: Creating InputStream
15:47:12 T:3116 NOTICE: Creating Demuxer
15:47:12 T:2964 NOTICE: Thread CFileCache start, auto delete: false
15:47:43 T:3116 WARNING: could not find codec parameters for http://d4417.allmyvideos.net/d/ywme4dfo ... rect=false
15:47:43 T:3116 ERROR: CDVDPlayer::OpenDemuxStream - Error creating demuxer
15:47:43 T:3116 NOTICE: CDVDPlayer::OnExit()
15:47:43 T:3116 NOTICE: CDVDPlayer::OnExit() deleting input stream
15:47:43 T:1756 ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.live.streamspropk/?url=http%3A%2F%2Fd4417.allmyvideos.net%2Fd%2Fywme4dfoyq5dh6lncle4t46mewc5iynmvppumcnuhhvb5errsc7ab2qgghcabai%2Fvideo.mp4%3Fv2%26direct%3Dfalse&mode=12]
15:47:43 T:1756 NOTICE: CDVDPlayer::CloseFile()
15:47:43 T:1756 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
15:47:43 T:1756 NOTICE: DVDPlayer: waiting for threads to exit
15:47:43 T:1756 NOTICE: DVDPlayer: finished waiting
15:47:46 T:1612 NOTICE: Thread Background Loader start, auto delete: false
15:47:46 T:2560 NOTICE: Thread Jobworker start, auto delete: true

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 15 Nov 2014, 19:12
por robalo
Con vidspot y almayvideos no todos los enlances van igual de rápidos, los que te he puesto para estos dos son de carga rápida para que se pueda ver el ejemplo. Quizás con vidspot ha sido algo puntual, lo acabo de probar dos veces y carga casi igual de rápido que playedto. Aún así, se puede ver en el log que resuelve bien la url. Si lo copias en enlace resuelto del log cuando te da el error y lo pegas en "Abrir volcado de red ..." del VLC podrás comprobar que la url resuelta es correcta. Con el enlace que ma has puesto de allmyvideos he tenido el mismo resultado que tu, he pegado el enlace en el VLC y ha tardado en aparacer el vídeo unos 40 ó 45 segundos.

Mira mi log de vidspot del txt, esto sería lo normal con ese enlace. Se empieza a ver el vídeo casi en el mismo segundo el que se solicita. Lo he dejado correr un poco y lo he cerrado

Código: Seleccionar todo

18:19:17 T:9848  NOTICE: Thread XBPyThread start, auto delete: false
18:19:17 T:9848  NOTICE: -->Python Interpreter Initialized<--
18:19:17 T:9848  NOTICE: CommonFunctions-2.5.1
18:19:17 T:12040  NOTICE: DVDPlayer: Opening: http://d4421.vidspot.net/d/66mf6nvryq5dh6lnzhhmxy66esmtv7akidhdbkkfrlynqgrcc4qof4zoqgsvlty/video.mp4?v2&direct=false
18:19:17 T:12040 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
18:19:17 T:8396  NOTICE: Thread CDVDPlayer start, auto delete: false
18:19:17 T:8396  NOTICE: Creating InputStream
18:19:18 T:8396  NOTICE: Creating Demuxer
18:19:18 T:12152  NOTICE: Thread CFileCache start, auto delete: false
18:19:18 T:8396  NOTICE: Opening video stream: 0 source: 256
18:19:18 T:8396  NOTICE: Creating video codec with codec id: 28
18:19:18 T:8396  NOTICE: CDVDVideoCodecFFmpeg::Open() Using codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
18:19:18 T:8396  NOTICE: Creating video thread
18:19:18 T:8396  NOTICE: Opening audio stream: 1 source: 256
18:19:18 T:8396  NOTICE: Finding audio codec for: 86018
18:19:18 T:8488  NOTICE: Thread CDVDPlayerVideo start, auto delete: false
18:19:18 T:8488  NOTICE: running thread: video_thread
18:19:18 T:8396  NOTICE: Creating audio thread
18:19:18 T:12648  NOTICE: Thread CDVDPlayerAudio start, auto delete: false
18:19:18 T:12648  NOTICE: running thread: CDVDPlayerAudio::Process()
18:19:18 T:12648  NOTICE: Creating audio stream (codec id: 86018, channels: 2, sample rate: 24000, no pass-through)
18:19:18 T:8488  NOTICE:  fps: 23.976024, pwidth: 480, pheight: 256, dwidth: 480, dheight: 256
18:19:18 T:12148  NOTICE: Thread Jobworker start, auto delete: true
18:19:19 T:8488 WARNING: CRenderManager::Configure - timeout waiting for previous frame
18:19:19 T:8488  NOTICE: Display resolution DESKTOP : 1920x1080 @ 60.00 - Full Screen (16)
18:19:19 T:8488  NOTICE: D3D: rendering method forced to DXVA2 processor
18:19:37 T:12040  NOTICE: CDVDPlayer::CloseFile()
18:19:37 T:12040  NOTICE: DVDPlayer: waiting for threads to exit
18:19:37 T:8396  NOTICE: CDVDPlayer::OnExit()
18:19:37 T:8396  NOTICE: DVDPlayer: closing audio stream
18:19:37 T:8396  NOTICE: Closing audio stream
18:19:37 T:8396  NOTICE: Waiting for audio thread to exit
18:19:37 T:12648  NOTICE: thread end: CDVDPlayerAudio::OnExit()
18:19:37 T:8396  NOTICE: Closing audio device
18:19:37 T:8396  NOTICE: Deleting audio codec
18:19:37 T:8396  NOTICE: DVDPlayer: closing video stream
18:19:37 T:8396  NOTICE: Closing video stream
18:19:37 T:8396  NOTICE: waiting for video thread to exit
18:19:37 T:8488  NOTICE: thread end: video_thread
18:19:37 T:8396  NOTICE: deleting video codec
18:19:37 T:8396  NOTICE: CDVDPlayer::OnExit() deleting demuxer
18:19:37 T:8396  NOTICE: CDVDPlayer::OnExit() deleting input stream
18:19:37 T:12040  NOTICE: DVDPlayer: finished waiting
18:19:37 T:9196  NOTICE: Thread Background Loader start, auto delete: false
18:19:37 T:12040  NOTICE: CDVDPlayer::CloseFile()
18:19:37 T:12040 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
18:19:37 T:12040  NOTICE: DVDPlayer: waiting for threads to exit
18:19:37 T:12040  NOTICE: DVDPlayer: finished waiting
streamcloud tambien se puede, te he puesto los más fáciles de hacer para que te aventures a crear un conector para otro servidor similar a los tres del zip

Puedes pobrar con streaminto, no es igual pero si parecido

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 15 Nov 2014, 19:34
por pikomule
no se ni por donde empezar para crear un conector.

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 19 Nov 2014, 11:05
por pikomule
robalo, puedes orientarme de como crear un conector? no entiendo bien el codigo de los conectores que creas. Gracias

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 19 Nov 2014, 23:50
por robalo
Claro hombre.

Lo que hago es copiar el conector del servidor de la carpeta severs de pelisalacarta a la carpeta servers de livestreampro.
Edito el archivo y eleimino los import y from import. Añado las librerías que se usarán, como minimo urllib2 y re

Código: Seleccionar todo

import urllib2 #Librería que se usará para descargar la página
import re #Librería que se usará para buscar y extraer datos de la página descargada con expresiones regulares
Elimino todas las funciones a excepción de la función 'get_video_url'

Código: Seleccionar todo

def get_video_url( page_url ):
[....]
    return video_url

Luego, básicamente, modificar las líneas con scrapertools.... con funciones de las librerias urllib2 y re.
También eliminar código que no es necesario para livestreampro, como pueden ser las excepciones.

Te recomiendo, como primer paso, comparar los ficheros playedto.py de pelisalacarta y livestreampro. Intentar entender que hace uno y que hace el otro. Si no lo entiendes no pasa nada, pero es necesario mirarlo sin miedo e intentarlo. ;) Por qué?, por que aunque parezca mentira ambas funciones hacen lo mismo siempre y cuando el servidor played.to no cambie el método y se tenga que usar las excepciones.

No he querido incluir en los ejemplos del test servidores con excepciones para mostrar un conector con muy poco código para no asustar y no complicar.

Haz un intento con streaminto que es muy parecido a excepción de la parte final. Intenta montar el archivo siguiendo el guión de playedto y te ayudo a resolver problemas verás como al final le coges el trankillo ;)

A neno1978 le ha ido muy con los torrents :)

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 20 Nov 2014, 01:29
por pikomule
no me entero de na jeje, ni con streaminto que dices que es mas facil, soy capaz de conseguirlo :D . Si cambio algunas cosas del codigo, despues nisiquiera me sale el video en la lista. Me refiero a la seccion # Extrae la URL

Hay que modificar algo en default.py para que funcionen otros servidores?

Creo que esto es superior a mi :cry: , no soy capaz de coger el conector de pelisalacarta y portarlo a livestreams. Le doy vueltas y vueltas, pero es que no entiendo nada.

Asi no me ha funcionado streaminto, supogo que es normal, solo que cambiado "played.to" por "streaming.to" , por que cuando modifico algo, no sale en la lista. Me rindo por hoy

Código: Seleccionar todo

import urllib2
import re

def get_video_url( page_url ):

    # Normaliza la URL
    if not page_url.startswith("http://streamin.to/embed-"):
        videoid = re.findall( 'streamin.to/([a-z0-9A-Z]+)' ,page_url ,flags=re.DOTALL )[0]
        page_url = "http://streamin.to/embed-"+videoid+".html"

    # Descarga la página
    headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0'}
    req = urllib2.Request(page_url,None,headers)
    res = urllib2.urlopen(req)
    data = res.read()
    res.close()

    # Extrae la URL
	host = scrapertools.get_match(data, patron_jpg)
    video_url = re.findall( 'file\: "([^"]+)"' ,data ,flags=re.DOTALL )[0]

    return video_url

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 20 Nov 2014, 11:15
por robalo
jejej
#Extrae la url es lo único que cambia un poco.
Para componer la url, el archivo streaminto.py de pelisalacarta usa dos patrones de búsqueda

Código: Seleccionar todo

    patron_flv = 'file: "([^"]+)"'
    patron_jpg = 'image: "(http://[^/]+/)'
Con patron_flv se consigue obtener el path de la url de vídeo pero no el host al estar incompleto el value de la key file
Con patron_jpg se extrae el host de la url sin el path del value de la key image.

con le que la url final sería la suma de los cadenas
video_url = host+path

Re: Livestreams - Cómo se hace: xbmctorrent + conectores

Publicado: 20 Nov 2014, 12:11
por pikomule
no me entero, pruebo de estas 2 maneras, pero el video no sale en la lista:

Código: Seleccionar todo

    # Extrae la URL
    patron_flv = 'file: "([^"]+)"'
    patron_jpg = 'image: "(http://[^/]+/)'
    video_url = host+path

Código: Seleccionar todo

    # Extrae la URL
    patron_flv = 'file: "([^"]+)"'
    patron_jpg = 'image: "(http://[^/]+/)'
    video_url = patron_jpg+patron_flv