-
Notifications
You must be signed in to change notification settings - Fork 12
Downloading HydraX Streams #35
Comments
I tried (and failed) to do this a while ago. You can find my attempts on the hydrax branch. |
Hydrax seems to have been removed. Re-open when it is spotted again. |
Hey it is back... |
Indeed it is. |
Hydrax got The Alliance for creativity (ACE) protection which was created on 2017 they are anti-piracy Organization. They was even shutdown Openload and streaming at 31 October 2019. I guess Hydrax thought better form alliance get protected then shutdown as well. |
@thorio If the embed URL is To download the video, first you need to make a POST request to curl "https://ping.idocdn.com/" -d "slug=VMG9wjJtM" Response: {
"status": true,
"url": "m0weXd1eG1pdS54eXo=a",
"sources": ["sd", "hd"],
"isCdn": false,
"isHls": false,
"ads": "https://unreshiramor.com/4/3239564/"
} Then, you can start downloading the video. curl "https://www.4vs5osstge.buzz/" -H "Referer: https://playhydrax.com/?v=VMG9wjJtM" -o "video.mp4" Notes
I haven't use IDM a lot, so I don't know if this method can be used with it. |
It appears that the "www." in the URL actually determines it's quality.
|
@KartikSoneji I don't think IDM supports Headers outside of the browser extensions. |
Hmm, quite clever.
Great! Still haven't been able to test HSL though. @thorio
I was afraid of that. How about generating a PowerShell/cmd/shell script to download the videos? # downloadHydraXVideo <slug> <output file>
downloadHydraXVideo(){
url64=$(curl "https://ping.idocdn.com/" -d "slug=$1" | grep -Po '(?<="url":")[a-zA-Z0-9=+-]*?(?=",)');
# TODO: Fix the base64 string by moving the last character to the front.
curl "$(echo $url64 | base64 -d)" -# -C - -H "Referer: https://playhydrax.com/?v=$1" -o "$2";
}
downloadHydraXVideo "VMG9wjJtM" "Video 1.mp4"
downloadHydraXVideo "TiDe3FPHK" "Video 2.mp4"
#... |
@KartikSoneji I believe aria2c supports custom headers, as well as multithreaded downloads. I looked into it a while ago, I don't remember why I didn't pursue it further. We should be able to export a file with all the urls and headers required. |
@thorio Agree, but that would be an external dependency. |
There are already aria2c and IDM exporters in the script. I don't believe curl can be multithreaded on the same download? |
Unfortunately, no :(
If there is a large delay (> 5-6 hours) between pinging idocdn and downloading the video then you might get an I don't know if that is possible in
OK, will do that. |
I pushed the action to feature/hydrax-download. |
@thorio Thanks, will take a look. |
I wrote up a quick bash script that you can provide the stub to and it will retrieve the video. It assumes 720p for the video resolution. --insecure is needed on the second curl statement as it seems that at least one of the domains to download the video from doesn't have a valid SSL certificate so curl aborted on it. EDIT: If you couldn't tell the default filename is $STUB.mp4 as in if the stub is 18IX9abCy it translates to 18IX9abCy.mp4. This is assuming you don't give it a filename in the first place. Wrap whatever filename you want to give in quotes if it has spaces. You can replace the curl near the end with aria2c by using this line.
|
I've noticed that the requests HydraX's player is making don't directly fetch the mp4 anymore. |
This is no longer needed. KissAnime.ru shut down permanently a few minutes ago. |
welp |
@JambDev When I originally tried this (before this issue was opened) they were using HLS, so they might be changing things around a lot. @shinji257 There is still kissanime.nz (#39), which also has a hydrax option (Hserver). They also don't seem to have captchas? |
@thorio Ahh. I was unaware that it also used hydrax. |
@shinji257 Yes, and if you look closely you can still find the familiar ping to |
|
Sorry, i thought script can download all hydrax link from any website. I
already open new issue, pls do me a favour. Thank you.
Vào 00:46, T.3, 6 Th10, 2020 Kartik Soneji <[email protected]> đã
viết:
… Can you let us know the name of your website?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#35 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQZLVXLK6I7JTD7NFWAGKS3SJIA6XANCNFSM4JTINIAA>
.
|
I have been lurking this issue for a while now and was able to implement the hydrax downloader in Python. But recently, something about the Using the question from #54 as an example:
Returns:
However, it appears that the following steps remained the same. I could download files via trial and error by using the old domains such as: I tried to dig in the js files for clues, but couldn't find anything :/ |
@mrwunderbar666 Seems like the Running: curl -L https://playhydrax.com/?v=TZTopeD-V The interesting bit: <script type="text/javascript">
//...
if ("undefined" != typeof ADS)
new ADS(atob("eyJzdGF0dXMiOnRydWUsIm1kNV9pZCI6MTAzNTc3MjUsInNvdXJjZXMiOlsic2QiLCJoZCJdLCJzb3VyY2VfYnJlYWtzIjpbXSwiZG9tYWluIjoiNDd5YW9odWhpbi5idXp6IiwidXNlX3AycCI6dHJ1ZSwidXNlX2Rvd24iOmZhbHNlfQ=="))
var styleMinion = "width:100%;height:100% !important;background: url(https://iamcdn.net/img/block2.jpg) center center no-repeat;background-size:contain;position:absolute"
</script> decoding the base64 data gives: {
"status": true,
"md5_id": 10357725,
"sources": ["sd", "hd"],
"source_breaks": [],
"domain": "47yaohuhin.buzz",
"use_p2p": true,
"use_down": false
} Shell script: curl -sL "https://playhydrax.com/?v=TZTopeD-V" |\
grep "ADS(" |\
sed -r 's/.*"(.*)".*/\1/' |\
base64 -di |
@KartikSoneji Thanks that did the trick! That is now much easier to implement. I just noticed that some of the domains have issues with SSL. No matter how I connect to some of them, some throw a handshake error:
I wonder, how the browser resolves that, because in curl the option |
You are so talent. Can you tell me the way to get hydrax link to download? |
A fool does not read the comments above. |
wow. seems it was blocked by encryption js |
it seems that hydrax.net has become abyss.to. Can anyone still download the files with the curl? If you can, please share the result. Thanks |
@KartikSoneji Do you know about abyss.to? how to do |
@lavara123 If you find a website that uses abyss.to, then I'll be happy to update the script. |
Thanks a lot, I'm looking forward to it curl 'https://embed2.megaxfer.ru/embed2/01bded490f99430277078b8ad5ae9af8' \
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36' \
-H 'referer: https://www.2embed.ru/' \
--compressed curl output: <iframe src="https://playhydrax.com/?v=2FKgbNJtB&sub=https://cc.1clickcdn.ru/8d/3b/8d3b7506346ba4ef945e5274488b094e/eng-6.vtt" width="100%" height="100%" scrolling="no" frameborder="0"
allowFullScreen="true" webkitallowfullscreen="true"
mozallowfullscreen="true"></iframe> and next link : |
Looks like they are using CloudFlare, this is not going to be as easy. |
wget -d --header="User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" https://playhydrax.com/?v=2FKgbNJtB |
@KartikSoneji @lavara123 did you ever figure out how to bypass the cloudflare I have been stuck for days in figuring out that section I don’t know what checks are being performed |
Hi @crypto-0 curl -L --user-agent "Mozilla/5.0" --cipher AES256-SHA256 --tls-max 1.2 "<url>" In nodejs, you have to set the cipher explictly: const https = require("https");
async function fetch(url, options){
return new Promise((resolve, reject) => {
let req = https.request(url, options, res => {
let data = [];
res.on("data", chunk => data.push(chunk));
res.on("end", e =>
resolve({
headers: res.headers,
status: res.statusCode,
text: async () => Buffer.concat(data).toString()
})
);
});
req.on("error", reject);
req.end();
});
}
// use
let response = await fetch(url, {
headers: { "User-Agent": "Mozilla/5.0" },
ciphers: "AES256-SHA256"
}); Hope that helps. |
Thank for share. |
Any chance someone found a working solution to this issue? |
@KartikSoneji Sorry for Pinging you, but I am searching for method to download content from abyss.to. To give an example Movie: https://topstreamfilm.org/player.html?v=jxx2_qNnl. I searched for a long time now in the Internet for a working method but I didn't find any. |
I made a repo since it's too long How-to-download-hydrax-abyss.to |
Is it possible to do scraping? |
How to get here with just the embed url in scraping? |
@lavara123 Haven't looked into automating or scraping with it so can't help ya |
EDIT2: NVM got it to work now. I had to replace wss with https. But still, is there a quicker and easier version to get the videocdn URL (wss://gpcsyjfe71.globalcdn93.one) other than disconnecting and reconnecting from the internet so I can see and copy it from the websocket tab? |
New method only needs one link. More info https://github.com/PatrickL546/How-to-download-hydrax-abyss.to
from base64 import b64decode
from requests import get
from json import loads
from re import search
print('cdn_ID. ie. "?v=VswFqVUmq" without "?v=". Note: ID should be 9 characters')
cdn_ID = input("Enter cdn_ID: ")
# leave empty for 360p
# add "www" for 720p
# add "whw" for 1080p
# if 1080p is not available, it will use the next highest quality
q_prefix = "whw"
domain, vid_id, sources = [loads(b64decode(search(r'PLAYER\(atob\("(.*?)"', get(f"https://abysscdn.com/?v={cdn_ID}").text).group(1)))[i] for i in ["domain","id","sources"]]
print(f"""
360p = " " = "sd", "mHd"
720p = "www" = "hd"
1080p = "whw" = "fullHd"
Available sources {sources}
Downloading "{q_prefix}" or next highest source available
Please wait...
""")
response = get(f"https://{domain}/{q_prefix}{vid_id}", headers={"Referer": f"https://abysscdn.com/?v={cdn_ID}"}, stream=True)
with open(f"{cdn_ID}.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk) |
How do I get it to show download information? |
Thank you so much for you work and all the help so far! I have another quick question, what would I have to add to the code so I can queue up multiple videos to download? I'd love to be able to just plug in multiple video IDs and then have it download them while I can do other things rather than having to start one download after the other. Or is that just not possible? |
@rosshauptnerin . Quick and dirty script update Check if download file already exists from base64 import b64decode
from os.path import isfile
from requests import get
from json import loads
from re import search
print(
'cdn_ID. ie. "?v=VswFqVUmq" without "?v=". Note: ID should be 9 characters. Separate ID with comma ","'
)
cdn_ID_list = set([i.strip() for i in input("Enter cdn_ID: ").split(",")])
# leave empty for 360p
# add "www" for 720p
# add "whw" for 1080p
# if 1080p is not available, it will use the next highest quality
q_prefix = "whw"
error = []
for cdn_ID in cdn_ID_list:
try:
if isfile(f"./{cdn_ID}.mp4"):
print(f"{cdn_ID}.mp4 already exists")
else:
domain, vid_id, sources = [
loads(
b64decode(
search(
r'PLAYER\(atob\("(.*?)"',
get(f"https://abysscdn.com/?v={cdn_ID}").text,
).group(1)
)
)[i]
for i in ["domain", "id", "sources"]
]
print(f"""
360p = " " = "sd", "mHd"
720p = "www" = "hd"
1080p = "whw" = "fullHd"
Available sources {sources}
Downloading "{cdn_ID}.mp4" in quality "{q_prefix}" or next highest source available
Please wait...
""")
response = get(
f"https://{domain}/{q_prefix}{vid_id}",
headers={"Referer": f"https://abysscdn.com/?v={cdn_ID}"},
stream=True,
)
with open(f"{cdn_ID}.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
except Exception:
error.append(cdn_ID)
for i in error:
print(f"Error downloading: {i}") |
That's perfect thank you! |
I'm pretty happy with the current state of these Hydrax-Abyss.to-DownloadHelper-UserscriptHydrax-Abyss.to-DownloadHelper-PythonJust info How-to-download-hydrax-abyss.to |
This script is amazing and after adding the idm export feature it became even more amazing. but since kissanime changed from rapidvideo to hydrax, i cant download any anime. I searched a lot but couldn't find a way to generate links from hydrax stream. It seems to be impossible so i had to use nova server and solve all the captcha to get the download links. If anybody knows a way to generate links from hydrax stream that would be a great help.
The text was updated successfully, but these errors were encountered: