Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openload.co extractor not working #10408

Closed
byteholding opened this issue Aug 22, 2016 · 326 comments · Fixed by #10971 or #12587
Closed

openload.co extractor not working #10408

byteholding opened this issue Aug 22, 2016 · 326 comments · Fixed by #10971 or #12587
Labels
broken-IE problem with existing site extraction

Comments

@byteholding
Copy link

youtube-dl --get-url --verbose https://openload.co/embed/kUEfGclsU9o/
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--get-url', u'--verbose', u'https://openload.co/embed/kUEfGclsU9o/']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.08.22
[debug] Python version 2.6.6 - Linux-2.6.32-642.1.1.el6.x86_64-x86_64-with-centos-6.8-Final
[debug] exe versions: ffmpeg 0.6.5, ffprobe 0.6.5
[debug] Proxy map: {}
ERROR: Unable to extract link image; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 691, in extract_info
ie_result = ie.extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 347, in extract
return self._real_extract(url)
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/openload.py", line 62, in _real_extract
r'<img[^>]+id="linkimg"[^>]+src="([^"]+)"', webpage, 'link image')
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 650, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract link image; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@dstftw dstftw added the broken-IE problem with existing site extraction label Aug 22, 2016
@yokrysty
Copy link

yokrysty commented Aug 23, 2016

they've changed the video link obfuscation to a very simple method, lol

openload video link extraction script
http://pastebin.com/PJ4SFqBM

@yan12125
Copy link
Collaborator

A nice hit! @yokrysty Did you write this script? If so could you declare this script as Public Domain or UNLICENSE so that it can be used in youtube-dl?

@yokrysty
Copy link

yes i wrote it now in 5 min :), yes you can use it

@yokrysty
Copy link

yokrysty commented Aug 23, 2016

before decrypting the data make sure you replace all the html entities
i updated the script with html replacing

@yan12125
Copy link
Collaborator

Many thanks @yokrysty Would you like to be listed on AUTHORS for the openload algorithm?

@yokrysty
Copy link

i don't mind :)

@yan12125
Copy link
Collaborator

OK Anyway thanks for the code :)

@byteholding
Copy link
Author

byteholding commented Aug 23, 2016

Thank you, too.
Could anyone explain me, how i change the new code to my exist youtube-dl setups on my servers. The release 2016.08.22 didn't have the updated code.

@yan12125
Copy link
Collaborator

Before a new version is released, you can download https://github.com/rg3/youtube-dl/archive/master.zip and unzip it.

@byteholding
Copy link
Author

Amazing! Thank you very much ;)

@ghost
Copy link

ghost commented Aug 28, 2016

we're getting pigeons again

@yan12125
Copy link
Collaborator

Confirmed.

@yan12125 yan12125 reopened this Aug 28, 2016
@yokrysty
Copy link

yokrysty commented Aug 28, 2016

@yan12125 the change is not major: at the last char code in the array add 2 then convert it to char
http://pastebin.com/xXZv59Jc

@yan12125
Copy link
Collaborator

Many thanks again! Updated.

@ghost
Copy link

ghost commented Aug 28, 2016

They updated their site again. Add 1 instead of 2. Maybe this gets changed throughout the day?

@yan12125
Copy link
Collaborator

Or, they are watching this repo today. It's working two hours ago.

@yokrysty
Copy link

then do it like this
oldown.py http://pastebin.com/zW4sGyZd
aa_decode.py http://pastebin.com/jFtB8dhi

:)

@yan12125
Copy link
Collaborator

Just tried it. The latest commit is still working. Doesn't it work for you? @yokrysty

@e2iplayer
Copy link

This is not working because the number added to last char code is variable.
At now it is 1 not 2.

@yan12125
Copy link
Collaborator

I've changed 2 to 1 in 98908bc, and it's still working. Feel free to leave a comment if its algorithm is changed again.

@yokrysty
Copy link

@yan12125 use my method from above where I read the number that needs to be added from the javascript

@yan12125
Copy link
Collaborator

I see. Will integrate it the next time var_val is changed.

@ghost
Copy link

ghost commented Aug 30, 2016

seems that they're now migrating to the canvas method, but on a different host.

@ghost
Copy link

ghost commented Aug 30, 2016

Its a 3 now.

@TmpName
Copy link

TmpName commented Apr 11, 2017

I have already see this issue for your JavaScript interpreter but long time, I haven't see update for it, and this one not working for me, too much work to do on it, but I'm not sure I m using the last version.
And I can't use the pair method, because this code is to be used with kodi, and kodi alone, boring to use a navigator just to solve a captcha.

And use PhantomJs or JS2py with kodi is realy heavy too. For the moment I need to try Ducktape with a wrapper.

@Tithen-Firion
Copy link
Contributor

@TmpName Pairing method is used by Exodus addon for Kodi. You can pair using your phone.

Or you could set up a server (in the same network) that uses whatever works to get video url and return it back to Kodi. That way you could use PhantomJS or even better, Selenium WebDriver (Python version).

@dpxcc
Copy link

dpxcc commented Apr 11, 2017

I just want to point out that there is another option. You can simply use the openload api (https://openload.co/api, not the hidden stream api which needs pairing)

If you are the owner of the videos, their api always work. But if you are not, their api won't work during the peak hours.

You need to crack a captcha to get the download link. But I think it is not hard using computer vision or existing captcha solving services, e.g. deathbycaptcha.

@Tithen-Firion
Copy link
Contributor

I've tried that API. It seems it's "peak hours" all the time.

@dpxcc
Copy link

dpxcc commented Apr 11, 2017

As mentioned in my previous comment, if you are not the owner of the video, the api does not work for you during the peak hours. But if you are the owner, it works 24/7.

@dpxcc
Copy link

dpxcc commented Apr 12, 2017

@Tithen-Firion
Copy link
Contributor

Tithen-Firion commented Apr 12, 2017

FYI:

Doesn't work:

  • url decoder in Python - they change the code too often
  • js2py - with not implemented
  • jsdom - checks for [native code] in <some_built_in_function>.toString() fail

Not tested:

  • API. Haven't seen their captcha so I can't tell if it's crackable. Use of DeathByCaptcha is out of the question.

Things that work and can be merged to master:

Things that work and can't be merged to master:

  • extracting video url with PhantomJS
  • extracting video url with Selenium WebDriver (can use PhantomJS for headless browser; Firefox, Chrome and others open browser window)

@dpxcc
Copy link

dpxcc commented Apr 12, 2017

Interesting. I didn't implement the jsdom solution. It's just the first thing came to my mind to simulate a browser. It seems that jsdom has an open issue that might be related to your toString failure: jsdom/jsdom#1756

If you just want to build a website and use openload videos, and you don't need fine-grained control over the video (e.g. implementing danmu), the easiest way is to embed with <iframe sandbox="allow-scripts" src="...">. This blocks all pop up ads. But their embed code does not work on certain mobile devices, due to a limitation in videojs with 302 redirect videojs/videojs-contrib-hls#548

@dammysky
Copy link

dammysky commented May 4, 2017

Openload stream url not extracting again. Please assist

@yan12125
Copy link
Collaborator

yan12125 commented May 4, 2017

Please try #12754.

@breeser
Copy link

breeser commented Jun 7, 2017

i just made a c# implementation if you would like to port this over to python, but I don't know how long till they change their algorithm again.
https://gist.github.com/breeser/b2642783898deb01373892779760f845

@Tithen-Firion
Copy link
Contributor

@breeser no point in doing it. They will just change it the next day. See #12754 or this Gist for better solution.

@0xMH
Copy link

0xMH commented Jul 18, 2017

I've tried to download from openload today but It just download useless video instead!

$ youtube-dl -v  https://openload.co/embed/XDZCX9Uqtj0/%5BOKanime.com%5D_OxP_%28001%29.avi.mp4
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://openload.co/embed/XDZCX9Uqtj0/%5BOKanime.com%5D_OxP_%28001%29.avi.mp4']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.07.15
[debug] Python version 3.6.1 - Darwin-16.4.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 3.3.2, ffprobe 3.3.2
[debug] Proxy map: {}
[Openload] XDZCX9Uqtj0: Downloading webpage
[debug] Invoking downloader on 'https://openload.co/stream/{\xad\x17Oêàjz¶GÆ´\x9ei\x0cOûõjz\nkÆ´ê\x81\x16O\x89àjz\x17µW¦ò4®D\x9bàjz]kÆ´\xad\x81\x16O¾àjz kÆ´¹\x81\x16O£àjzLkÆ´±\x81\x16O½àjz kÆ´\x93\x81\x16O\x88àjzqkÆ´\x83\x81\x16O¾àjzkÆ´¸\x81\x16O\x81àjzBkÆ´\x84\x81\x16OÿàjzCkÆ´\x8a\x81\x16O¹àjzDkÆ´ÿ\x81\x16O±àjzokÆ´¢\x81\x16O¢àjzjkÆ´Ã\x81\x16O¥àjz}kÆ´\x8b\x81\x16O\x8aàjzakÆ´Â\x81\x16O\x9bàjztkÆ´º\x81\x16O³àjz[kÆ´Á\x81\x16O³àjzXkÆ´º\x81\x16O£àjzdkÆ´Ã\x81\x16O\x9aàjzqkÆ´\x89\x81\x16O\x84àjzXkÆ´Â\x81\x16O°àjz]kÆ´¨\x81\x16O\x89àjzokÆ´Ã\x81\x16O?mime=true'
[download] Destination: [OKanime.com] OxP  (001).avi.mp4-XDZCX9Uqtj0.mp4
[download] 100% of 36.00B in 00:00

@Hrxn
Copy link

Hrxn commented Jul 18, 2017

[..] It just download useless video instead!

Pigeons?

@makgun02
Copy link

@Hrxn I think downloaded file is a text because it is only 36Bytes and probably it contains "403 Forbidden" message or something like that. For now I couldnt check it with my laptop but it seems that decoding code fails, according to @mohd20 reports, to decode the encrypted digits to find the exact url of video.

@Hrxn
Copy link

Hrxn commented Jul 18, 2017

@0xMH
Copy link

0xMH commented Jul 21, 2017

@Hrxn isn't that's the one already used now?

I tried again today with another link and got Bad request responce

    $ youtube-dl -v   https://openload.co/embed/pGydfCpmgC8/%5BOkanime%5D_Dive%21%21_-_03_%5B720P.mp4
    [debug] System config: []
    [debug] User config: []
    [debug] Custom config: []
    [debug] Command-line args: ['-v', 'https://openload.co/embed/pGydfCpmgC8/%5BOkanime%5D_Dive%21%21_-_03_%5B720P.mp4']
    [debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
    [debug] youtube-dl version 2017.07.15
    [debug] Python version 3.6.1 - Darwin-16.4.0-x86_64-i386-64bit
    [debug] exe versions: ffmpeg 3.3.2, ffprobe 3.3.2
    [debug] Proxy map: {}
    [Openload] pGydfCpmgC8: Downloading webpage
    [debug] Invoking downloader on 'https://openload.co/stream/ßDÛ\x91Ó\x9c1¼×%øa4¨Â\x91ôü>¼\x92%øa*WÛ\x91±ü>¼Û$øaöDÛ\x91«Õ>¼\xad%øaÞ\rÆe\x9cü>¼ä%øa³DÛ\x91©ü>¼ñ%øaÆDÛ\x91\x80ü>¼ô%øa\x98DÛ\x91\x92ü>¼×%øaÆDÛ\x91\xadü>¼Ñ%øaµDÛ\x91±ü>¼\x9b%øa\xadDÛ\x91¬ü>¼Ô%øa\xa0DÛ\x91Ìü>¼Õ%øa\x97DÛ\x91\x97ü>¼Ò%øa£DÛ\x91Îü>¼ß%øaªDÛ\x91¤ü>¼ó%øaäDÛ\x91¢ü>¼ú%øa°DÛ\x91·ü>¼Ã%øaÄDÛ\x91\x82ü>¼è%øa\x91DÛ\x91\x99ü>¼Î%øaÆDÛ\x91¦ü>¼ê%øa\x9eDÛ\x91\xadü>¼ä%øaÆDÛ\x91\x96ü>¼È%øa¢DÛ\x91£ü>¼×%øaÆDÛ\x91\x9fü>¼Ð%øaªDÛ\x91\x87ü>¼ß%øaÇDÛ\x91?mime=true'
    ERROR: unable to download video data: HTTP Error 400: Bad Request
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 1848, in process_info
        success = dl(filename, info_dict)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 1790, in dl
        return fd.download(name, info)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/youtube_dl/downloader/common.py", line 361, in download
        return self.real_download(filename, info_dict)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/youtube_dl/downloader/http.py", line 61, in real_download
        data = self.ydl.urlopen(request)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2151, in urlopen
        return self._opener.open(req, timeout=self._socket_timeout)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 532, in open
        response = meth(req, response)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 642, in http_response
        'http', request, response, code, msg, hdrs)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 570, in error
        return self._call_chain(*args)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 504, in _call_chain
        result = func(*args)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", line 650, in http_error_default
        raise HTTPError(req.full_url, code, msg, hdrs, fp)
    urllib.error.HTTPError: HTTP Error 400: Bad Request

@Tithen-Firion
Copy link
Contributor

Tithen-Firion commented Jul 21, 2017

Nope, it's just a pull request. Openload module in master branch is still broken.

Edit: I meant this: #12754. The other link is just simple example of how to use PhantomJS to get download URL from Openload.

@revolter
Copy link
Contributor

What about https://github.com/GoogleChrome/puppeteer? Can this be used to extract it?

@makgun02
Copy link

@revolter I think that (In my opinion) puppeteer needs too much dependency so that it will be useless. Also recoding is required for puppeteer. It will be just waste of time.

@yan12125
Copy link
Collaborator

This is fixed in #14225, which will be included in the next version. Thanks to @Tithen-Firion!

@yan12125
Copy link
Collaborator

As a reference: one of major PhantomJS developer states that the project is now abandoned and suggests puppeteer: ariya/phantomjs#15105 (comment)

@partyconfetti
Copy link

Currently working regexp way if you need;
https://gist.github.com/partyconfetti/db2adb9e5f97635e2192a426738a7cc3

@makgun02
Copy link

makgun02 commented Dec 5, 2017

@partyconfetti thanks for your code.
(This is Turkish language) Ayrıca bir Türk'ün daha burda olması benim için güzel bir şey. Aramıza hoşgeldin. Uzun zamandır takılmıyordum burda çünkü Android uygulamam sorun çıkarmadı daha ve ayrıca site geliştiricileri de bu aralar sıkça güncellemiyor. Sıkıldılar tabi. Herneyse hayatta başarılar sana.

@partyconfetti
Copy link

@makgun02 thanks 🎉
(bir mail at tanisalim :))

@IDerr
Copy link

IDerr commented Dec 30, 2017

EDIT : I am idiot, haven't seen the commit made yesterday :(
Great job.

Hello,
I don't know if it only happens to me but :

 youtube-dl --version
2017.12.28

youtube-dl https://openload.co/embed/pGydfCpmgC8/%5BOkanime%5D_Dive%21%21_-_03_%5B720P.mp4
[Openload] pGydfCpmgC8: Downloading webpage
[Openload] pGydfCpmgC8: Executing JS on webpage
[download] Destination: [Okanime] Dive!! - 03  [720P.mp4-pGydfCpmgC8.mp4
[download] 100% of 36.00B in 00:00

cat \[Okanime\]\ Dive\!\!\ -\ 03\ \ \[720P.mp4-pGydfCpmgC8.mp4 
{"status":500,"msg":"unknown error"}

Hope they didn't change again :(

EDIT :

After verbose mode 👍

youtube-dl -v "https://openload.co/f/kUEfGclsU9o"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://openload.co/f/kUEfGclsU9o']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2017.12.28
[debug] Python version 3.6.4 - Linux-4.14.8-1-ARCH-x86_64-with-arch
[debug] exe versions: ffmpeg 3.4.1, ffprobe 3.4.1, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[Openload] kUEfGclsU9o: Downloading webpage
[Openload] kUEfGclsU9o: Executing JS on webpage
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://openload.co/stream/None?mime=true'
[download] skyrim_no-audio_1080.mp4-kUEfGclsU9o.mp4 has already been downloaded
[download] 100% of 36.00B

@ytdl-org ytdl-org deleted a comment from tirthsuthar Jul 22, 2019
@ytdl-org ytdl-org deleted a comment from tirthsuthar Jul 23, 2019
@ytdl-org ytdl-org locked as off-topic and limited conversation to collaborators Jul 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
broken-IE problem with existing site extraction
Projects
None yet