VidScr / cloudnestra extractor is broken #490
Labels
No labels
MediaFlow Proxy
autorelease: pending
autorelease: tagged
bug
documentation
duplicate
enhancement
help wanted
invalid
question
wontfix
🇩🇪 German
🇫🇷 French
🇮🇳 Indian
🇸🇦 Arabic
🌐 Multi
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Creepso/webstreamr-github#490
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
They changed something and are most likely obscuring the final URL. That combined with all the rate limiting is maybe a good reason to ditch it.
Looks like stremsrc added pstream. That and watch32 could be good alternatives
On the public instance I disabled the vidsrc extractor via env var for now
Extractor was removed in
f5f4740Here is my findings...if you are interested to unpack you can see what actualy is used for decoding the encrypted string that holds the m3u8
Decoding functions to get the real m3u8(Dean Edwards p.a.c.k.e.d)
https://cloudnestra.com/pjs/pjs_main_drv_cast.261125.jsWhat it migth be doing
split on :
loop through characters
map a–z / 0–9 to numeric values
XOR or subtract constants
cs()
Hw()
bo()
dO()`
Decoder might do
split your big string on : (you see lots of : in the encoded blob),
loop over the characters,
convert them to numbers using custom alphabet logic (notice the g digits in your blob),
and then possibly call cs() or unescape, atob, pako.inflate, etc.
The flow
embed → rcp → prorcp → hidden
The encrypted link is somth like this
grep -R "eSfH1IRMyL" -n . ./prorcp.html:378: <div id="eSfH1IRMyL" style="display:none;">946844e7f35848:7d7g3e3e32525252526b8b6c7785765f3b8743755f5145886:756445675288427b77867142454684698583488g76555659718c736449596552888g78556g72626d5:8g657467838769666241477581416786455:87737b5b8f75618782466g5663565e5d7g65867:7272786673865c77564b877553888:7472616d5g5g784886455882748f5e5c59728e76658b8b7b637555898:756d5f5585896856898643495e754e5946625f58778459836d5:5f37438e5d57827756588d75846657627g51887549477161688f7d596b5b82447g6f3e7375726285876g735b8854796d577f3b5c525:847:894166857d518466545577514258735:555748644359688252525252525252525:5485495g3385848f75747g3e86478c8f334181827g3g3b448185858971338g713946844e7f33867584827e7g325252625b5g7e7b814c79625f3b89716b734g674c7f566b878f364d5286516f78574:865b658e766:467f7:5968454649734271445g74766c7469757:724463487d59427e738b826e5b84847e526b6e5686897:6:4f3587886267856d737766566c567568557e587767527874437:6b68525b6b756:43434:884f5c7d785d576g52457468616b628:4f3975446978578144777:4b597b8257448986526b7e5f3d5f7f374981846544885e7g5358476782737765875f5551896b63698:8e518189744:7b628b7e787354756f526f3b724f36424:83418f567757876e534e51875647798f37535364785885556e5668574e545b86816b72744274564g79884d535:8:667g53767f3:477:46555f396643518982685:654g78475c748873585d5257527745474262536:7477654253635e545c596b8g54488252525252525252525:5485495g3d718g3e85478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g325252625b5g7e7b814c79625f3b89716b734g674c7f566b878f364d5286516f78574:865b658e766:467f7:5968454649734271445g74766c7469757:724463487d59427e738b826e5b84847e526b6e5686897:6:4f3587886267856d737766566c567568557e587767527874437:6b68525b6b756:43434:884f5c7d785d576g52457468616b628:4f3975446978578144777:4b597b8257448986526b7e5f3d5f7f374981846544885e7g5358476782737765875f5551896b63698:8e518189744:7b628b7e787354756f526f3b724f36424:83418f567757876e534e51875647798f37535364785885556e5668574e545b86816b72744274564g79884d535:8:667g53767f3:477:46555f396643518982685:654g78475c748873585d5257527745474262536:7477654253635e545c596b8g54488252525252525252525:5485495g3d718g3e84478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g325252625b5g7e7b814c79625f3b89716b734g674c7f566b878f364d5286516f78574:865b658e766:467f7:5968454649734271445g74766c7469757:724463487d59427e738b826e5b84847e526b6e5686897:6:4f3587886267856d737766566c567568557e587767527874437:6b68525b6b756:43434:884f5c7d785d576g52457468616b628:4f3975446978578144777:4b597b8257448986526b7e5f3d5f7f374981846544885e7g5358476782737765875f5551896b63698:8e518189744:7b628b7e787354756f526f3b724f36424:83418f567757876e534e51875647798f37535364785885556e5668574e545b86816b72744274564g79884d535:8:667g53767f3:477:46555f396643518982685:654g78475c748873585d5257527745474262536:7477654253635e545c596b8g54488252525252525252525:5485495g3d718g3e83478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g325252625b5g7e7b814c79625f3b89716b734g674c7f566b878f364d5286516f78574:865b658e766:467f7:5968454649734271445g74766c7469757:724463487d59427e738b826e5b84847e526b6e5686897:6:4f3587886267856d737766566c567568557e587767527874437:6b68525b6b756:43434:884f5c7d785d576g52457468616b628:4f3975446978578144777:4b597b8257448986526b7e5f3d5f7f374981846544885e7g5358476782737765875f5551896b63698:8e518189744:7b628b7e787354756f526f3b724f36424:83418f567757876e534e51875647798f37535364785885556e5668574e545b86816b72744274564g79884d535:8:667g53767f3:477:46555f396643518982685:654g78475c748873585d5257527745474262536:7477654253635e545c596b8g54488252525252525252525:5485495g3d718g3e82478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:567689574581687g6b6574458b747b71655:7657726185754266786166684754547g6d5f545683814b7f3e5142818b7g55466d7673896:8:8b5781676e77824d575e56447354858482848:8771486e5e7766734864416:694f58554f7f565e5:5b738f5264658f3:7844644e734657738d7b584f57787983828849776968634f5e58465689785c5853576:776387566b546b6g5688877d7785566f7184638:8465598:888e58634b8d7384835588567862765886684b84798956426342494273425878494277437673414389624b6f79434b667e5142584:5b8284887864647f3675526:6:8b89834f3166557:754e598f5g56548d557566866:678688646d5:7:7:7484714756697:688e777:5968625c5e77565g558447424b8:5f7f56486f557547465:4766588854557b7b57696481444b66545:47514252635:555c59634359688252525252525252525:5485495g3d718g3e85478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:567689574581687g6b6574458b747b71655:7657726185754266786166684754547g6d5f545683814b7f3e5142818b7g55466d7673896:8:8b5781676e77824d575e56447354858482848:8771486e5e7766734864416:694f58554f7f565e5:5b738f5264658f3:7844644e734657738d7b584f57787983828849776968634f5e58465689785c5853576:776387566b546b6g5688877d7785566f7184638:8465598:888e58634b8d7384835588567862765886684b84798956426342494273425878494277437673414389624b6f79434b667e5142584:5b8284887864647f3675526:6:8b89834f3166557:754e598f5g56548d557566866:678688646d5:7:7:7484714756697:688e777:5968625c5e77565g558447424b8:5f7f56486f557547465:4766588854557b7b57696481444b66545:47514252635:555c59634359688252525252525252525:5485495g3d718g3e84478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:567689574581687g6b6574458b747b71655:7657726185754266786166684754547g6d5f545683814b7f3e5142818b7g55466d7673896:8:8b5781676e77824d575e56447354858482848:8771486e5e7766734864416:694f58554f7f565e5:5b738f5264658f3:7844644e734657738d7b584f57787983828849776968634f5e58465689785c5853576:776387566b546b6g5688877d7785566f7184638:8465598:888e58634b8d7384835588567862765886684b84798956426342494273425878494277437673414389624b6f79434b667e5142584:5b8284887864647f3675526:6:8b89834f3166557:754e598f5g56548d557566866:678688646d5:7:7:7484714756697:688e777:5968625c5e77565g558447424b8:5f7f56486f557547465:4766588854557b7b57696481444b66545:47514252635:555c59634359688252525252525252525:5485495g3d718g3e83478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:567689574581687g6b6574458b747b71655:7657726185754266786166684754547g6d5f545683814b7f3e5142818b7g55466d7673896:8:8b5781676e77824d575e56447354858482848:8771486e5e7766734864416:694f58554f7f565e5:5b738f5264658f3:7844644e734657738d7b584f57787983828849776968634f5e58465689785c5853576:776387566b546b6g5688877d7785566f7184638:8465598:888e58634b8d7384835588567862765886684b84798956426342494273425878494277437673414389624b6f79434b667e5142584:5b8284887864647f3675526:6:8b89834f3166557:754e598f5g56548d557566866:678688646d5:7:7:7484714756697:688e777:5968625c5e77565g558447424b8:5f7f56486f557547465:4766588854557b7b57696481444b66545:47514252635:555c59634359688252525252525252525:5485495g3d718g3e82478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:5743516:4279436b8g5767465g7f556g5354636:43578c735486624:4187548b67544:5286686444747:7g6779738366486b525745527:6b77816589724866825b788373855g7:6:42584:7f7g735g5:5g5f7c7886838843557245558:66646g77436d7549895f354:754d56424c5b6981855c7:696b5e53864c77864378874e5:474c54865:64727755774g746885858c75496f5g7778677:58616c5469677b6579734757857b8271644388826:68664b84665e5f5:45747:41485e536b716g757785716585797f3b6d5g534f79668566484f38448442834588624f526d7g5g7762585764785556475f348382565:8b7e564:837e737b637b516:736b526e7d744b7859487445848b55656:4652638778485378467f3:49648c7c798:6b8487566d5f3b59758:5149565c718e5b53627347556g7:7g67514252635:555c544:8b54488252525252525252525:5485495g3d718g3e85478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:5743516:4279436b8g5767465g7f556g5354636:43578c735486624:4187548b67544:5286686444747:7g6779738366486b525745527:6b77816589724866825b788373855g7:6:42584:7f7g735g5:5g5f7c7886838843557245558:66646g77436d7549895f354:754d56424c5b6981855c7:696b5e53864c77864378874e5:474c54865:64727755774g746885858c75496f5g7778677:58616c5469677b6579734757857b8271644388826:68664b84665e5f5:45747:41485e536b716g757785716585797f3b6d5g534f79668566484f38448442834588624f526d7g5g7762585764785556475f348382565:8b7e564:837e737b637b516:736b526e7d744b7859487445848b55656:4652638778485378467f3:49648c7c798:6b8487566d5f3b59758:5149565c718e5b53627347556g7:7g67514252635:555c544:8b54488252525252525252525:5485495g3d718g3e84478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:5743516:4279436b8g5767465g7f556g5354636:43578c735486624:4187548b67544:5286686444747:7g6779738366486b525745527:6b77816589724866825b788373855g7:6:42584:7f7g735g5:5g5f7c7886838843557245558:66646g77436d7549895f354:754d56424c5b6981855c7:696b5e53864c77864378874e5:474c54865:64727755774g746885858c75496f5g7778677:58616c5469677b6579734757857b8271644388826:68664b84665e5f5:45747:41485e536b716g757785716585797f3b6d5g534f79668566484f38448442834588624f526d7g5g7762585764785556475f348382565:8b7e564:837e737b637b516:736b526e7d744b7859487445848b55656:4652638778485378467f3:49648c7c798:6b8487566d5f3b59758:5149565c718e5b53627347556g7:7g67514252635:555c544:8b54488252525252525252525:5485495g3d718g3e83478c8f354385848e758g3g3b448185858971338g713946844e7f33867584827e7g3e3e32525256526:5743516:4279436b8g5767465g7f556g5354636:43578c735486624:4187548b67544:5286686444747:7g6779738366486b525745527:6b77816589724866825b788373855g7:6:42584:7f7g735g5:5g5f7c7886838843557245558:66646g77436d7549895f354:754d56424c5b6981855c7:696b5e53864c77864378874e5:474c54865:64727755774g746885858c75496f5g7778677:58616c5469677b6579734757857b8271644388826:68664b84665e5f5:45747:41485e536b716g757785716585797f3b6d5g534f79668566484f38448442834588624f526d7g5g7762585764785556475f348382565:8b7e564:837e737b637b516:736b526e7d744b7859487445848b55656:4652638778485378467f3:49648c7c798:6b8487566d5f3b59758:5149565c718e5b53627347556g7:7g67514252635:555c544:8b54488252525252525252525:5485495g3d718g3e82478c8f354385848e758g3g3b44818585897</div> ./prorcp.html:480: var player = new Playerjs({id:"player_parent", file: eSfH1IRMyL , cuid:"e026b4e96e0f93cee764caedc1a61007",poster:"//image.tmdb.org/t/p/w780/5h2EsPKNDdB3MAtOk9MB9Ycg9Rz.jpg" , ready:"PlayerReady" , autoplay:1 , subtitle: default_subtitles , "default_quality":"max"});that's a nice find! let's keep the discussion here and not in commits please. the div with the encrypted data is where we're stuck and that JS you found seems to be the key to unlock it. I'm definitely intersted in reverse-engineering / step-debugging through this. because vidsrc/cloudnestra is still a nice source.
I believe this piece in the unpacked JS is the key, but I don't see the
decode()function in the same JS. might be coming from somewhere elseThat function means that the code for decode should be in that file inside wrapped somewrere because without the decode function the return a , would through an error(which doesn't)
THere is also another file sbx.js which might have something inside which I didnt checked.
Also these should be checked
`grep -i base64 page.html
grep -Eo 'src="[^"]+"' page.html
src="//cloudnestra.com/rcp/MmZmYWExMDExYTY5ZTU0ZDk3ZjMzNDQ5MGM1MDAzNDI6Y1ZkbGJYcENNWEptUjNNeGFEbEVNVEJOZVhsamJWQjFNbmxyTHl0a1RtZEJZM00zVUZGcU5rWnRORmd5WkhwVkwyMXVkV3RVYW1RMWRYZDVUbWhvYnpCVmJFbzVTVzR4VVZWTk1teDNiV3hwYmtSMFpVZElRMHRLTVdGaVdVcGlkMmMzWTB4TmFXaGpXRE50VmpKQ1VUTnVOVTk1WWxGYWNVaElTREpFZERkdFNVWjRZVlpyWm1WNk1XNDRiM3BTZUZkMVpuVnRiR3B6UzNCblkwZHJVM1p2WkM5dlFtRjVOVkJGY2tkWVUzQTBhekoxYm5KM1luSXpUaloxVjNKSlRqZHpNbWRITmtGVmRqZElTMlpTYWpKVlNXOHlhRWRaU2pOQ2VXVndSbUZZVmpNdmNsWkNkWEVyV21kSlFYZDBaVk4zZFRGU1oyMWpiRFJtYlhwMlIweHlaMmd4TjFwbVduSTBZaXRJUVRGYVMyVXZlbWQ1Y25FNFoxa3ljM0Z0T1UwclpGcGlXR2RFVERKVFdYWkZUME52WTBsQ2FURkJSVkJ0VURkblIwZHhiVEV6VWs5QmFsSnRjM3BLUzBRMlRGbzNhMVpVTkZGaWFUQkpSbGxqUWpKeVFua3paMjVaTnprNFltcERMMEo2VFV3MVdtSm1PVXRhVW1SMGJVcFJRbG8zU1ROak9GQjNZVmxITTJSdmRFWllPVzlPVlhaVE4wTXhURmgwYVVsTk4ySXZjVTByUWl0a1JIUXhaRXhZUlVWNWFYUTFhWGRJWWxkVmRscDZibXBPVTJaeGR6TTNVRTFzVEd0U2MwUmthVWt3UkZGS2NVOUlVVTl2YVN0SVVUVTVSREZJVUZoWVZXZGlNQzgxYTNWMU1IRjFMeXRTVkhNeVNrUlJObW8wVVVKWVN6bDFTVmw1V1VwcWFWWlJWa014YzJjNGVITmlUbFJwTDI5TFJUTXhhMFk1YzIxclRVMUdhMU5QUnlzclFrcDRjWFpyYWsxTFUzZHBiVkk1TDI1bFVFcG9PRlJGS3l0RU5GSnRNMVJ5Y2k5TE5HeENObkJFZFhNeE1qaDJSRGM0VVM5cFVsazBTamRJV1hVMFVUUkVhR2Q1UkhsQlRFVnhjV2xZTWtRdmNWcHdkVGg2Y1hKalRYZzBOWGhsYWpodU1qaHlWM0p3Y1dsVlRITm5kRTl1SzNGNVYyUk1OM3AwTkhGcmJuaGxOV1ZTZURsVlQwNHlhMjFtZFV0VWJsWlhkMjFrVFZCUllXNHhjV3A2Um5OelZreHJaVll5Vm05RFptNVZjamh3U0ZFd1FXOUdaVzExU1VWd1JqYzFja2RGWldjemJtTjVjMnBvWmprdlJXazFVMWMxWVVsYVFWQmhhMXAyYjFkbFNtOVdlVFZGTW5GaU1XUmxMek5ZTWxOR2NXdHRNVUZMVldaTFJ5OHhWelY0VW5aMlZHWjZXQ3RIZVVkeWIyOXpRVEJoVWxBeFlrTm9SRXR2TmxKeFMxRTVia1ZwVDFsV2JHWkZWbUpvWm5sNFNXaG5VekkyZFZwdVVtWjRPVXQ0UTJsa2NDOW9ZM1YwU1dkS09Hc3pVVGxpZUU1emFWWlhaMmRQTTFGalpHNHllVEJzTnpWbVNtRlViM05LVldOcFJURXZRMkpaY1hNNVVuSllSbFpxZVU1SVRqRm5jVFF3UXpkVVJqTlFLMDh3Y3pZMVZucHJaVlZvTjNaSllUWjNUV3hUYzJGRmRIbEVaakpDVWpnNGVHOXhablJDUjFCWlpYZEVlR05WWVd4bGJuVlliWGhqYjJaUlpTOUJibFJ0WmpCV01VZE9kMXBMY2xoTWVrSlpTMmhvVlRGNFJtVlRlVzR2V2xWNWEzaFhSMWxIVUVoR09WQldkSGczWVVZeGJFVkxaM1pQUzA5WGIxZHhNMXA1Ym1sYVpWaFBWMWsyV0hoalNURndTbGMwTW5ablJuSjBibGN3UlU5WmQzUjZhRWxSTWtRdlYyZHVkMlkyUWt4VGRUbDRRMnBRZDNCQ2FXMTNPSG80WTBsamEzSkhhVE41VkRSTU5GVjJVelI2ZWxGSFVUMDk-"
src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"
src="/jquery-3.7.1.min.js"
src="//cdnjs.cloudflare.com/ajax/libs/blueimp-md5/2.16.0/js/md5.min.js"
src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.5/js.cookie.min.js"
src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"
src="/base64.js?t=1688387834"
src="/sources.js?t=1745104089"
src="/reporting.js?t=1688387834"
src="//cloudnestra.com/asdf.js"
src="/sbx.js?t=1754734900"
src="//sstatic1.histats.com/0.gif?4873540&101"`
https://cloudnestra.com/base64.js?t=1688387834This might have what you want but what it say not found
Should be somewhere lol
Ups check this might have something
https://vidsrc-embed.ru/base64.js?t=1688387834Your earlier unpacked code had something like:
rASrYDeb: function (x) {
var a;
eval(decode('#1lfA9IHTuP3iVP3eyKDIpb2mvPVU2lkITNg00b2X#...'));
return a;
}
Now you have:
var Base64 = { ... decode: function(e) { ... } ... };
So there are two likely options in the page:
Somewhere they did:
var decode = Base64.decode;
or
They call it explicitly as:
eval(Base64.decode('...'));
and your unpacked snippet just inlined/renamed it to decode().
Either way, the logic is:
Take that long string (with #, etc.).
Run Base64.decode(...) — note that decode() removes all non [A-Za-z0-9+/=] chars:
e = e.replace(/[^A-Za-z0-9+/=]/g,"");
So any # or weird separators are just thrown away before decoding.
The result is another JavaScript snippet as a string.
eval(...) executes that string, and that code sets a = function (x) { /* real logic */ } or similar.
So:
The Base64 module you showed is not the final “decrypt the div blob” logic.
It’s just the first stage loader: it unpacks more JS code.
That unpacked JS will contain the real decode/decrypt routines for your big
Ps this is different?
https://www.2embed.stream/embed/movie/tt26443597maybe we can scrap this as its same tipology
https://www.2embed.ccDo do know a way how to bypass block of dev tools?
In this way is easier to debug and see if we can make this work
No
Isn't this the decoder we want
https://github.com/cool-dev-guy/vidsrc.ts/blob/main/src/helpers/decoder.tsAlso the final hls is not protected and can be played everywhere(at least this is a good thing)
https://tmstr3.quibblezoomfable.com/pl/H4sIAAAAAAAAAwXB0XKCMBAAwF8iwaj0EStQkLPEcJG8JQTtkIBMh6HI13e3ozZo94_wSMOI7OnBWNMdrKGPXWQsPR4.Sq8SOUznLuVVQ5mTCVyVg1KkfLyNDbE15MUGsaATdD6PQcTzhSgFKUna8LnrUmBidO8OXcg_ObQjDy8bnJqBD.hUqm8Rk2P5xjpg18wym.YvdNFQ0K9VjaovaLnwhE9NjXMpYY9oMx3kVGdqFndf6Hsuee1nEJw0GCecwnfXcy0wn.p0XTQ2RN_9Yjx.VuTMdOb.5PAMqs0vWq49ip9KDOrSBpCpvtmVvSprr35NGJ_MljNMXgvPbGzOkVaUTChZjA42PZxXuwXRPzWH0Q9BAQAA/master.m3u8Did you get that hls with that decoder thingy?
No...I got it using another method because I was curious if the link is directly playable or not...
I've came across this issue when I was trying to get information about the domain vidsrc is getting video stream from.
The only way I found to really see what's going on on vidsrc is to use HTTP Toolkit. It provides external network traffic viewer hooked to browser, so you still do everything in the browser window, but you can see requests when they are sent.
EDIT: Also it seems like vidsrc is using devtools blocker from "theajack.github.io/disable-devtool". If you find a way to bypass it you should be able to open devtools without any problems.
Is this something we can scrap to substitute vidsrc? Or this is same lol
https://www.videasy.net/playerdon't think this is fixable atm. if it is we'll surely hear about it again and can re-add it
@GLlgGL I just noticed something new about vidsrc, not sure if that recently changed. might be interesting. e.g. https://vidsrc-embed.ru/embed/tv/tt1877005/6-14 which works, has the usual cloudnestra stuff going on, but on the final page they have this
and in the real URL the v1 was replaced with
quibblezoomfable. I wonder where this string comes from and how often it changes, but feels really close to a playable HLS URLthere's also
c01da21b22/app/src/main/java/com/streamflixreborn/streamflix/extractors/VidsrcNetExtractor.kt (L59)which has that string hard-coded as well. but they also have some decrypt code apparently take directly out of the vidsrc scrambled JS. but for the above embed it seems not needed because it is not encrypted hmm. anyway, maybe we can get vidsrc back, that would be great :)Vidsrc not work there and also alot of their src...the only one working there is vixsrc.
To be sincer I am a bit tired with this thing where to mantain a thing working you depend on other 4-5 other things like provider site, streaming provider, mediaflow proxy, vpn, players f... up by stremio, ect...
I think their decode part is old...if we dont find the right decode it will be impossible to have it working
About your finding, I dont think we can achieve something with that because even if we can predict or find the domain cdn the remaining part is also somehow encrypted...
That decode part is crucial
Now you know why I'm not looking into every thing that can be found and prefer stable stuff I guess 😅
The thing is, data was not encrypted yesterday, only the domain part was unknown. I'll watch it a bit and maybe still add it back, let's see
Yeah is better have less source but stable ones...
What are you using to debug knowking that the vidsrc has blocked the dev tools
this is how the final link should be...is wowrking
https://tmstr5.quibblezoomfable.com/pl/H4sIAAAAAAAAAw3F0XqCIBgA0FdS0MzdzU.0OaFi8iPcIWp8U5tWc66n387N2aPIBrswwE0X7Uwc9Tsb9tZGTdf3qDXeSwfuVP7GCTz1bK7ZBOJx5372Ra9vWA8.hUOSy5yf1Oi.26lYpeDOiOwmqvFsiZMCXXx.sIF6Qt7W.s5BBB28eg1yG4wjZU82HyGhDYqvuiIhSI60n2hL9pvwNl.nxXKsLriBwphPWGXuMlMz4Cn_LT12txPb1BSCxi1h.WM5C4XtkBE5spVivX4gFZZI13aaUTeyhRKFGgReiQVW3s8GxC.PGauNcLMlbNZZUv0_MKFWKucQUPFOR7jJIVxM6oq2SrZqmHOKilRUXvwHaLOccUEBAAA-/master.m3u8Even like this it works
https://tmstr5.cloudnestra.com/pl/H4sIAAAAAAAAAw3F0XqCIBgA0FdS0MzdzU.0OaFi8iPcIWp8U5tWc66n387N2aPIBrswwE0X7Uwc9Tsb9tZGTdf3qDXeSwfuVP7GCTz1bK7ZBOJx5372Ra9vWA8.hUOSy5yf1Oi.26lYpeDOiOwmqvFsiZMCXXx.sIF6Qt7W.s5BBB28eg1yG4wjZU82HyGhDYqvuiIhSI60n2hL9pvwNl.nxXKsLriBwphPWGXuMlMz4Cn_LT12txPb1BSCxi1h.WM5C4XtkBE5spVivX4gFZZI13aaUTeyhRKFGgReiQVW3s8GxC.PGauNcLMlbNZZUv0_MKFWKucQUPFOR7jJIVxM6oq2SrZqmHOKilRUXvwHaLOccUEBAAA-/master.m3u8oh that's perfect, we can try their default domain then IMO. I didn't do anything special yesterday, maybe they just temporary disabled some of their security measures and it will come back again 🙈
Probably yes because this wasn't before
Anyway you use both those domains
Based on your link I think there are more three domains they use because of the {v1} {v2} ect
We have two and there are missing three others
Also they use different tmstr{number}
Anyway the main domain they use is quibblezoomfable.com but you can add fallback to cloudnestra.com
like this one
https://tmstr1.quibblezoomfable.com/pl/H4sIAAAAAAAAAwXB7VqDIBgA0FuCyE37uSZTCw3Hh7z_GGokrkfbh5tX3znxtu_RNsat3SYvcY.7vnd9FzuMXNd2p82bFXLp5OPVifpmKVwNGmcl6cwbE8mhfFeh9PXgIjHA3Y47_fmMF649rwe4OU1XJjz_WAtQAZdHBWBRPZ10eCoESg.Qs.AinU5gVviSGi8ynUZxUA1kBWdqanTmf0W2oy7zlKXhr0R5xNW4qWiOBfYzhPrRiVHZQ7GROlnhJ5nteVn1GYRoGK5S4IbIe4smJrL6YEhBTLgQQzxn6Hqsmt3ehjY3hJqjjK7lqp6tHKXe.4sl39E_xhzlLiEBAAA-/master.m3u8Also decode this with base64 and you get the filename(title)
var flnm = removeExtension(atob('SXJvbiBNYW4gMyAoMjAxMykgWzEwODBwXS9Jcm9uLk1hbi4zLjIwMTMuMTA4MHAuQmx1UmF5LngyNjQuWUlGWS5tcDQ='));SXJvbiBNYW4gMyAoMjAxMykgWzEwODBwXS9Jcm9uLk1hbi4zLjIwMTMuMTA4MHAuQmx1UmF5LngyNjQuWUlGWS5tcDQ== Iron Man 3 (2013) [1080p]/Iron.Man.3.2013.1080p.BluRay.x264.YIFY.mp4
@GLlgGL feel free to test what I pushed to main. but I have no clue how long this will work 🙈
I am using public instance so I have to wait
They f. up because this wasn't showing before...
was brought back in
381fb89cfband9ee91dff31but I'm not confident that this will work long, let's see 🤞
Public instance is down
Yeah lets hope it will last
it's back and working, but on the public instance we're also getting rate-limited by cloudnestra and it waits for the result when it can, which makes all requests slower and sometimes it still does not work.
this would most likely not be the case if I add lazy extraction for cloudnestra but AFAIK this does not work for hls streams on android because of the various redirect related issues there are 😭
--> https://github.com/Stremio/stremio-bugs/issues/1574#issuecomment-3750306575
Also thinking about only doing vidsrc extraction only when it does not have at least 2 other multi sources. That would make sure to not even do any requests for it when we have e.g. 4khdhub links already
Vidsrc is the perfect fallback for non popular stuff IMO, buy does not add much value in other cases
Yes that is good to do
bad1170implements what I described and should reduce vidsrc requests and therefore rate limits and performance issues massively I hopelooks like my trick works relatively well. vidsrc is rarely used, only as fallback if no other good multi source was found. that lead to a huge reduction in useless requests and rate limits being triggered
e.g.
and
Seems good
Also this videasy works on his app
c01da21b22/app/src/main/java/com/streamflixreborn/streamflix/extractors/VideasyExtractor.ktIf videasy is good and you think we should add it, then please open a new issue for it
Let save it for a later time...
It is also https://vidlink.pro api
which someone else made it work as I've seen it work on a app
jfyi I enabled discussions for this repo and also created issue templates. for unrelated things or issues which might be none or just random questions, please create a discussion if possible :) thx