Página 1 de 2

Url de youtube para reproducir?

Publicado: 08 Jul 2017, 18:39
por Intel1
Hola a todos, tengo esta url:

https://youtube.googleapis.com/embed/?s ... autoplay=1

Pero no lo reproduce pelisalacarta pero en el navegador si reproduce.

He probado en el canal: Tengo una url pero no es reconocido :(

He visto la fuente de esa url, pero no encuentro algún link al video :(

Como puedo convertir esa url para que pueda ser reproducido?

Gracias :)

Re: Url de youtube para reproducir?

Publicado: 09 Jul 2017, 22:24
por robalo
Intel1 esa url solicita la información del vídeo de

Código: Seleccionar todo

https://docs.google.com/get_video_info?docid=<docid_de_la_solicitante>&eurl
En el cuerpo de la respuesta debería estar la información que necesitas para ...., action="play", server="directo", ....

Te recomiendo usar la última url "|https....." + "|Cookie=....." pero es cuestión de ir probando.

Para sacar la cookie usa 'cookies=False' en la petición.

Re: Url de youtube para reproducir?

Publicado: 10 Jul 2017, 23:47
por Intel1
robalo escribió:
09 Jul 2017, 22:24
Intel1 esa url solicita la información del vídeo de

Código: Seleccionar todo

https://docs.google.com/get_video_info?docid=<docid_de_la_solicitante>&eurl
En el cuerpo de la respuesta debería estar la información que necesitas para ...., action="play", server="directo", ....

Te recomiendo usar la última url "|https....." + "|Cookie=....." pero es cuestión de ir probando.

Para sacar la cookie usa 'cookies=False' en la petición.
Hola rabalo, gracias por responder, ya pude extraer la url gracias a un codigo del canal de hernan "doomtv":

Código: Seleccionar todo

        doc_url = "http://docs.google.com/get_video_info?docid=" + id
        response = httptools.downloadpage(doc_url, cookies=False)
        cookies = ""
        cookie = response.headers["set-cookie"].split("HttpOnly, ")
        for c in cookie:
            cookies += c.split(";", 1)[0] + "; "

        data = response.data.decode('unicode-escape')
        data = urllib.unquote_plus(urllib.unquote_plus(data))
        headers_string = "|Cookie=" + cookies

        url_streams = scrapertools.find_single_match(data, 'url_encoded_fmt_stream_map=(.*)')
        streams = scrapertools.find_multiple_matches(url_streams,
                                                 'itag=(\d+)&url=(.*?)(?:;.*?quality=.*?(?:,|&)|&quality=.*?(?:,|&))')

        itags = {'18':'360p', '22':'720p', '34':'360p', '35':'480p', '37':'1080p', '59':'480p'}
        for itag, video_url in streams:
            video_url += headers_string
            video_urls.append([video_url, itags[itag]])

Este código me saca las url de los videos que necesito :)

Pero lo que no entiendo es como sabías que jalaba de aqui los datos:

https://docs.google.com/get_video_info? ... ante>&eurl

Yo no encontré alguna referencia de alguna url para hacerle el seguimiento :(

Gracias por la ayuda :)

Re: Url de youtube para reproducir?

Publicado: 12 Jul 2017, 06:41
por robalo
Mejor pregúntale a hernan que se ha currao el code para todos los vídeos, lo mio es un test

Código: Seleccionar todo

[....]
    itemlist.append( Item(channel="tfm", action="ytApiVideoInfo", title="ytApiVideoInfo", url="https://youtube.googleapis.com/embed/?status=ok&allow_embed=0&ps=docs&partnerid=30&docid=0B3s2x7j5IvXlQTlCYW1Hcy1OckE&showinfo=0&autoplay=1"))
[....]
def ytApiVideoInfo(i):
    from urllib import unquote as u
    from core.httptools import downloadpage as dw
    from core.scrapertools import find_single_match as f, find_multiple_matches as fa

    docid = f(i.url, "docid=([^&]+)&")
    r = dw("https://docs.google.com/get_video_info?docid=%s&eurl" % docid, cookies=False)
    urls = fa(u(r.data), "\|(https.*?explorer),")

    return [i.clone(title="Play", action="play", server="directo", url=urls[-1]+"|Cookie="+r.headers['set-cookie'])]

Re: Url de youtube para reproducir?

Publicado: 12 Jul 2017, 09:33
por Inter95
robalo escribió:
12 Jul 2017, 06:41
Mejor pregúntale a hernan que se ha currao el code para todos los vídeos, lo mio es un test

Código: Seleccionar todo

[....]
    itemlist.append( Item(channel="tfm", action="ytApiVideoInfo", title="ytApiVideoInfo", url="https://youtube.googleapis.com/embed/?status=ok&allow_embed=0&ps=docs&partnerid=30&docid=0B3s2x7j5IvXlQTlCYW1Hcy1OckE&showinfo=0&autoplay=1"))
[....]
def ytApiVideoInfo(i):
    from urllib import unquote as u
    from core.httptools import downloadpage as dw
    from core.scrapertools import find_single_match as f, find_multiple_matches as fa

    docid = f(i.url, "docid=([^&]+)&")
    r = dw("https://docs.google.com/get_video_info?docid=%s&eurl" % docid, cookies=False)
    urls = fa(u(r.data), "\|(https.*?explorer),")

    return [i.clone(title="Play", action="play", server="directo", url=urls[-1]+"|Cookie="+r.headers['set-cookie'])]
Una explicación parecida a esta es que estaba esperando con el problema que tenia con el canal que estaba creando, digo tenía porque al parecer modificaron algo en la web o dejaron de pagar la seguridad y ahora puedo obtener los datos sin problemas :mrgreen:
No me animo a publicar ese canal, porque luego activan la seguridad y por el momento no tengo la capacidad para solventar ese problema.

Gracias por esta explicación, me cayo como anillo al dedo, con un par de ajustes lo aplique a un canal que estoy creando, que por cierto casi todos sus enlaces son de docs.google y fui capaz hasta de sacar todas las resoluciones de los videos, claro gracias a una fusión de este código con el de hernan. Gracias nuevamente y Saludos! 👍

Re: Url de youtube para reproducir?

Publicado: 14 Jul 2017, 19:12
por bugatsinho
para este url 'https://youtube.googleapis.com/embed/?s ... 25FbG1UTTQ'

funciona lo mismo?
porque muchas paginas con contenido latino usan estos urls ahora.
Gracias

Re: Url de youtube para reproducir?

Publicado: 15 Jul 2017, 07:27
por robalo
bugatsinho escribió:
14 Jul 2017, 19:12
para este url 'https://youtube.googleapis.com/embed/?s ... 25FbG1UTTQ'

funciona lo mismo?
porque muchas paginas con contenido latino usan estos urls ahora.
Gracias
Para solicitar la información del vídeo y la cookie sólo se necesita 'https://youtube.googleapis.com/embed/?docid=<docid>', el resto de parámetros no son necesarios.

Para que funcione cualquier url en el código del test, independiemente de la cantidad parámetros que incluya y de como estén ordenados, se tiene que modificar el patrón del scraper del 'codid'.

Código: Seleccionar todo

    docid = f(i.url, "docid=([^&]+)&")
por

Código: Seleccionar todo

    docid = f(i.url, "docid=(\w+)")

Re: Url de youtube para reproducir?

Publicado: 17 Jul 2017, 17:37
por Intel1
robalo escribió:
12 Jul 2017, 06:41
Mejor pregúntale a hernan que se ha currao el code para todos los vídeos, lo mio es un test

Código: Seleccionar todo

[....]
    itemlist.append( Item(channel="tfm", action="ytApiVideoInfo", title="ytApiVideoInfo", url="https://youtube.googleapis.com/embed/?status=ok&allow_embed=0&ps=docs&partnerid=30&docid=0B3s2x7j5IvXlQTlCYW1Hcy1OckE&showinfo=0&autoplay=1"))
[....]
def ytApiVideoInfo(i):
    from urllib import unquote as u
    from core.httptools import downloadpage as dw
    from core.scrapertools import find_single_match as f, find_multiple_matches as fa

    docid = f(i.url, "docid=([^&]+)&")
    r = dw("https://docs.google.com/get_video_info?docid=%s&eurl" % docid, cookies=False)
    urls = fa(u(r.data), "\|(https.*?explorer),")

    return [i.clone(title="Play", action="play", server="directo", url=urls[-1]+"|Cookie="+r.headers['set-cookie'])]
Hola robalo, estube probando tu código ytApiVideoInfo() y me funciona con muchas url, pero hay una que estoy probando (y algunas otras mas) y no funciona :(

URL:

https://youtube.googleapis.com/embed/?s ... autoplay=1

En esta parte:

Código: Seleccionar todo

r = dw("https://docs.google.com/get_video_info?docid=%s&eurl" % docid, cookies=False)
El r.data me devuelve esto:
status=fail&hl=es&allow_embed=0&ps=docs&partnerid=30&errorcode=150&reason=No+es+posible+reproducir+el+v%C3%ADdeo+en+este+momento.+Se+ha+excedido+el+n%C3%BAmero+de+reproducciones+permitidas.+Vuelve+a+intentarlo+en+otro+momento.&timestamp=1500308551291&suberrorcode=4
Pero en la web el url reproduce sin problemas, y también en el archivo (get_video_info) de https://docs.google.com/get_video_info está la data correcta.

Podría ser algo de headers o cookies?. He probado algunas cosas pero no puedo resolverlo.

Disculpa las molestias :oops:

Gracias.

Re: Url de youtube para reproducir?

Publicado: 17 Jul 2017, 18:14
por robalo
Qué web? La url no funciona en el navegador.

Re: Url de youtube para reproducir?

Publicado: 17 Jul 2017, 18:18
por Intel1
Hola, a mi si me funiciona la url:

Imagen

Desde esta web:

http://www.cinetux.net/pelicula/ver-la- ... an-online/

El enlace se genera aquí:

http://api.cinetux.me/drive.php?v=bVEvY ... JVQWc9PQ==

Gracias :)