Jdownloader 2.0 Rtmpe Patch
This should be your intention too, as a user, to fully evaluate Warcraft The Frozen Throne CD Key Works 100% without restrictions and then decide. If you are keeping the software and want to use it longer than its trial time, we strongly encourage you purchasing the license key from Warcraft official website. Our releases are to prove that we can! Nothing can stop us, we keep fighting for freedom despite all the difficulties we face each day.
Our Reader Score [Total: 0 Average: 0] JDownloader 2.0 DC + Portable Description: JDownloader 2.0 DC + Portable, JDownloader offers downloading in multiple paralell streams, captcha recognition, automatical file extraction and much more. JDownloader 2.0 Beta JDownloader 0.9.581 JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be.
Permalink- MineBatch 2.0 by ClxGames Studios! Is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License! MineBatch is a free-to-play game developed by ZombieKnifer223 and it is available for Windows only.
- Download the crack for game JDownloader 2.0 Beta: Enjoy this software!!!
- JDownloader is a free, open-source download management tool with a huge community of developers that makes downloading as easy and fast as it should be. Users can start, stop or pause downloads, set bandwith limitations, auto-extract archives and much more.
All your code in one place
GitHub makes it easy to scale back on context switching. Fabfilter pro q download cracked. Read rendered documentation, see the history of any file, and collaborate with contributors on projects across GitHub.
Sign up for free See pricing for teams and enterprisesJdownloader 2.0
// jDownloader - Downloadmanager |
// Copyright (C) 2009 JD-Team support@jdownloader.org |
// |
// This program is free software: you can redistribute it and/or modify |
// it under the terms of the GNU General Public License as published by |
// the Free Software Foundation, either version 3 of the License, or |
// (at your option) any later version. |
// |
// This program is distributed in the hope that it will be useful, |
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// GNU General Public License for more details. |
// |
// You should have received a copy of the GNU General Public License |
// along with this program. If not, see <http://www.gnu.org/licenses/>. |
packagejd.plugins.hoster; |
importjava.util.concurrent.atomic.AtomicReference; |
importorg.jdownloader.downloader.hls.HLSDownloader; |
importorg.jdownloader.plugins.components.hls.HlsContainer; |
importjd.PluginWrapper; |
importjd.http.Browser; |
importjd.http.URLConnectionAdapter; |
importjd.parser.Regex; |
importjd.plugins.DownloadLink; |
importjd.plugins.DownloadLink.AvailableStatus; |
importjd.plugins.HostPlugin; |
importjd.plugins.LinkStatus; |
importjd.plugins.PluginException; |
importjd.plugins.PluginForHost; |
importjd.utils.JDUtilities; |
@HostPlugin(revision='$Revision$', interfaceVersion=2, names= { '7tv.de' }, urls= { 'http://7tvdecrypted.de/d+' }) |
publicclassProSevenDeextendsPluginForHost { |
/** Other domains: proxieben.at (redirects to .de) */ |
/** Tags: prosiebensat1.de, */ |
/** Interesting extern lib: https://github.com/bromix/repository.bromix.storage/tree/master/plugin.video.7tv */ |
privatestaticfinalStringURLTEXT_NO_FLASH='no_flash_de'; |
privatestaticfinalStringURLTEXT_COUNTRYBLOCKED_1='/not_available_'; |
privatestaticfinalStringURLTEXT_COUNTRYBLOCKED_2='wrong_cc_de_en_'; |
privatestaticAtomicReference<String> agent_hbbtv =newAtomicReference<String>(null); |
privatestaticAtomicReference<String> agent_normal =newAtomicReference<String>(null); |
privateString json =null; |
privatestaticfinalString[][] bitrate_info = { { 'tp12', '' }, { 'tp11', '2628' }, { 'tp10', '2328' }, { 'tp09', '1896' }, { 'tp08', '' }, { 'tp07', '' }, { 'tp06', '1296' }, { 'tp05', '664' }, { 'tp04', '' }, { 'tp03', '' }, { 'tp02', '' }, { 'tp01', '' } }; |
publicProSevenDe(finalPluginWrapperwrapper) { |
super(wrapper); |
} |
@Override |
publicStringgetAGBLink() { |
return'http://www.prosieben.de/service/nutzungsbedingungen/'; |
} |
@Override |
publicintgetMaxSimultanFreeDownloadNum() { |
return-1; |
} |
privatevoidprepareBrowser() { |
if (agent_hbbtv.get() null) { |
/* we first have to load the plugin, before we can reference it */ |
JDUtilities.getPluginForHost('mediafire.com'); |
agent_hbbtv.set(jd.plugins.hoster.MediafireCom.hbbtvUserAgent()); |
} |
if (agent_normal.get() null) { |
/* we first have to load the plugin, before we can reference it */ |
JDUtilities.getPluginForHost('mediafire.com'); |
agent_normal.set(jd.plugins.hoster.MediafireCom.stringUserAgent()); |
} |
} |
/* E.g. information about a single video: http://contentapi.sim-technik.de/mega-app/v2/pro7/phone/video/4041141 */ |
@Override |
publicAvailableStatusrequestFileInformation(finalDownloadLinkdownloadLink) throwsException { |
setBrowserExclusive(); |
prepareBrowser(); |
br.setFollowRedirects(true); |
finalString decrypter_filename = downloadLink.getStringProperty('decrypter_filename', null); |
finalString mainlink = getMainlink(downloadLink); |
if (mainlink null decrypter_filename null) { |
/* E.g. for old links! */ |
thrownewPluginException(LinkStatus.ERROR_FILE_NOT_FOUND); |
} |
br.getPage(mainlink); |
if (isOffline(this.br)) { |
/* Page offline */ |
thrownewPluginException(LinkStatus.ERROR_FILE_NOT_FOUND); |
} |
downloadLink.setFinalFileName(decrypter_filename); |
returnAvailableStatus.TRUE; |
} |
privateStringgetMainlink(finalDownloadLinkdl) { |
return dl.getStringProperty('mainlink', null); |
} |
publicstaticbooleanisOffline(finalBrowserbr) { |
boolean offline =false; |
if (br.getHttpConnection().getResponseCode() 404) { |
/* Page offline */ |
offline =true; |
} |
if (br.containsHTML('>Das Video ist nicht mehr verfügbar Leider ist das Video nicht mehr verfügbar')) { |
/* Video offline */ |
offline =true; |
} |
return offline; |
} |
/* |
* Explanation of the parameter 'method' when getting downloadlink: 1=http, 2=rtmp(e)[Depends on video, usually rtmp], 3=rtmpt, 4=HLS |
* (Crypted/uncrypted depends on video) |
*/ |
@SuppressWarnings('deprecation') |
@Override |
publicvoidhandleFree(finalDownloadLinkdownloadLink) throwsException { |
requestFileInformation(downloadLink); |
/* Let's find the downloadlink */ |
finalString clip_id =newRegex(downloadLink.getDownloadURL(), '(d+)$').getMatch(0); |
if (clip_id null) { |
/* This should never happen! */ |
thrownewPluginException(LinkStatus.ERROR_PLUGIN_DEFECT); |
} |
/* TODO: Maybe implement the current version of this request though this old one still works great. */ |
/* |
* Request V2: http://vas.sim-technik.de/vas/live/v2/videos/<clipID>/sources/url?access_token=sat1gold&client_location=<currentURL |
* >&client_name |
* =kolibri-1.11.3-hotfix1&client_id=<clientid>&server_id=<serverid>&source_ids=0%2C6%2C4&callback=_kolibri_jsonp_callbacks ._5236 |
*/ |
/* HLS (does not work as a workaround for for rtmpe streams): http://vas.sim-technik.de/video/playlist.m3u8?ClipID=<ClipID> */ |
// http://vas.sim-technik.de/video/video.json?clipid=clipID&app=megapp&method=4&drm=marlin2 |
/* |
* Example of an hls url: |
* http://vodakpsdhls-vh.akamaihd.net/i/clips/09/09/4117599-1o6e6wx-tp,03,04,05,06,.mp4.csmil/master.m3u8?hdnea=st%3D1448240481% |
* 7Eexp%3D1448326881%7Eacl%3D%2Fi%2Fclips%2F09%2F09%2F4117599-1o6e6wx-tp%2C03%2C04%2C05%2C06%2C.mp4%2A%7Ehmac% |
* 3Dedb40ef2bc90a159a2fc660e108a8e4ed9f934ee5c2e5376222ecc54bfe47f3a&__a__=off |
*/ |
/* |
* First try to get a http stream --> Faster downloadspeed & more reliable/stable connection than rtmp and slightly better |
* videoquality |
*/ |
this.br =newBrowser(); |
/* User-Agent not necessarily needed */ |
br.getHeaders().put('User-Agent', agent_hbbtv.get()); |
/* method=6 needed so that the Highest quality-trick works see 'getDllink' method */ |
br.getPage('http://vas.sim-technik.de/video/video.jsonp?clipid='+ clip_id +'&app=hbbtv&type=1&method=6&callback=video'+ clip_id); |
getDllink(); |
if (json null) { |
thrownewPluginException(LinkStatus.ERROR_PLUGIN_DEFECT); |
} |
if (json.contains(URLTEXT_NO_FLASH) json.contains(URLTEXT_COUNTRYBLOCKED_1) json.contains(URLTEXT_COUNTRYBLOCKED_2)) { |
this.br =newBrowser(); |
/* User-Agent not necessarily needed */ |
br.getHeaders().put('User-Agent', agent_normal.get()); |
/* http stream not available[via the above method] --> Maybe here --> Or it's either rtmp or rtmpe */ |
br.getPage('http://vas.sim-technik.de/video/video.jsonp?clipid='+ clip_id +'&app=moveplayer&method=6&callback=SIMVideoPlayer.FlashPlayer.jsonpCallback'); |
getDllink(); |
if (json null) { |
thrownewPluginException(LinkStatus.ERROR_PLUGIN_DEFECT); |
} |
} |
boolean failed =false; |
if (json.contains(URLTEXT_COUNTRYBLOCKED_1)) { |
failed =true; |
/* 2016-06-09: Try hls-fallback instead! */ |
// throw new PluginException(LinkStatus.ERROR_FATAL, 'This video is not available in your country #1'); |
} elseif (json.contains(URLTEXT_COUNTRYBLOCKED_2)) { |
failed =true; |
/* 2016-06-09: Try hls-fallback instead! */ |
// throw new PluginException(LinkStatus.ERROR_FATAL, 'This video is not available in your country #2'); |
} |
if (json.startsWith('rtmp')) { |
/* rtmp */ |
downloadRTMP(downloadLink); |
} elseif (failed) { |
/* hls - try hls fallback! */ |
/* 2016-06-16: TODO: Try APIV2 instead to find higher quality hds versions */ |
/* THX: https://github.com/rg3/youtube-dl/blob/f9b1529af8aec98bffd42edb5be15e1ada791a20/youtube_dl/extractor/prosiebensat1.py */ |
// final String access_token = 'prosieben'; |
// final String client_name = 'kolibri-2.0.19-splec4'; |
// final String client_location = Encoding.urlEncode(getMainlink(downloadLink)); |
// final String videos_api_url = 'http://vas.sim-technik.de/vas/live/v2/videos?' + 'access_token=' + access_token + |
// '&client_name=' + client_name + '&client_location=' + client_location + '&ids=' + clip_id; |
// final String g = '01!8d8F_)r9]4s[qeuXfP%'; |
// final String client_id = ' + JDHash.getSHA1(Encoding.UTF8Encode(clip_id + g + access_token + client_location + g + |
// client_name)); |
// final String sources_api_url = 'http://vas.sim-technik.de/vas/live/v2/videos/' + clip_id + '/sources?' + 'access_token=' + |
// access_token + '&client_name=' + client_name + '&client_location=' + client_location; |
this.br.setFollowRedirects(true); |
br.getPage('http://vas.sim-technik.de/video/playlist.m3u8?ClipID='+ clip_id); |
finalHlsContainer hlsbest =HlsContainer.findBestVideoByBandwidth(HlsContainer.getHlsQualities(this.br)); |
if (hlsbest null) { |
/* Fallback failed - no way to (legally) download this content! */ |
logger.info('Seems like only encrypted HDS/RTMPE streams are available!'); |
thrownewPluginException(LinkStatus.ERROR_FATAL, 'Protocol rtmpe:// not supported'); |
} |
finalString url_hls = hlsbest.getDownloadurl(); |
checkFFmpeg(downloadLink, 'Download a HLS Stream'); |
dl =newHLSDownloader(downloadLink, br, url_hls); |
dl.startDownload(); |
} else { |
/* Happens if usually the clip is streamed via rtmpe --> No HbbTV version available either. */ |
if (json.contains(URLTEXT_NO_FLASH)) { |
thrownewPluginException(LinkStatus.ERROR_FATAL, 'Protocol rtmpe:// not supported'); |
} |
/* |
* TODO: Instead of just trying all qualities, consider to use the f4mgenerator XML file to find the existing qualities: |
* http://vas.sim-technik.de/f4mgenerator.f4m?cid=3868276&ttl=604800&access_token=kabeleins&cdn=akamai&token= |
* a3c706238cec19617b8e70b64480fa20aacc2a162a3bbd21294a8ddaf0209699&g=TGENNQIQUMYD&hdcore=3.7.0&plugin=aasp-3.7.0.39.44 |
* |
* .. but it might happen that not all are listed so maybe trying all possible qualities makes more sense especially if one of |
* them is down e.g. because of server issues. |
*/ |
String dllink_temp =null; |
for (finalString[] single_bitrate_info : bitrate_info) { |
/* Highest quality-trick */ |
finalString quality_current =newRegex(json, '(tpd{2}.mp4?token=)').getMatch(0); |
finalString quality_highest = single_bitrate_info[0] +'.mp4?token='; |
if (quality_current !=null) { |
dllink_temp = json.replace(quality_current, quality_highest); |
if (checkDirectLink(dllink_temp)) { |
json = dllink_temp; |
break; |
} |
} |
} |
dl =jd.plugins.BrowserAdapter.openDownload(br, downloadLink, json, true, 0); |
if (dl.getConnection().getContentType().contains('html')) { |
if (dl.getConnection().getResponseCode() 403) { |
thrownewPluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, 'Server error 403', 60*60*1000l); |
} elseif (dl.getConnection().getResponseCode() 404) { |
thrownewPluginException(LinkStatus.ERROR_TEMPORARILY_UNAVAILABLE, 'Server error 404', 60*60*1000l); |
} |
logger.warning('The final dllink seems not to be a file!'); |
br.followConnection(); |
thrownewPluginException(LinkStatus.ERROR_PLUGIN_DEFECT); |
} |
dl.startDownload(); |
} |
} |
@SuppressWarnings('deprecation') |
privatevoiddownloadRTMP(finalDownloadLinkdownloadLink) throwsException { |
finalString protocol =newRegex(this.json, '^(rtmp(?:e t)?://)').getMatch(0); |
String app; |
if (protocol.equals('rtmpe://')) { |
app ='psdvodrtmpdrm'; |
/* |
* We can still get rtmpe urls via the old API but they won't work anyways as they use handshake type 9 which (our) rtmpdump |
* does not support. |
*/ |
thrownewPluginException(LinkStatus.ERROR_FATAL, 'rtmpe:// not supported!'); |
} else { |
app ='psdvodrtmp'; |
} |
// app = 'psdvodrtmpdrm'; |
String url = protocol + app +'.fplive.net:1935/'+ app; |
// url = 'rtmpe://psdvodrtmpdrm.fplive.net:1935/psdvodrtmp'; |
finalString playpath =newRegex(this.json, '(mp4:.+)').getMatch(0); |
if (playpath null) { |
thrownewPluginException(LinkStatus.ERROR_PLUGIN_DEFECT); |
} |
// playpath = playpath.replace('?start_time=', '?country=DE&start_time='); |
dl =newRTMPDownload(this, downloadLink, json); |
jd.network.rtmp.url.RtmpUrlConnection rtmp = ((RTMPDownload) dl).getRtmpConnection(); |
/* Setup connection */ |
rtmp.setApp(app); |
rtmp.setUrl(url); |
rtmp.setPlayPath(playpath); |
rtmp.setFlashVer('WIN 17,0,0,169'); |
rtmp.setSwfVfy('http://is.myvideo.de/player/GP/4.3.6/player.swf'); |
rtmp.setPageUrl(downloadLink.getDownloadURL()); |
rtmp.setResume(true); |
((RTMPDownload) dl).startDownload(); |
} |
privatebooleancheckDirectLink(finalStringdirecturl) { |
if (directurl !=null) { |
URLConnectionAdapter con =null; |
try { |
finalBrowser br2 = br.cloneBrowser(); |
con = br2.openHeadConnection(directurl); |
if (!con.getContentType().contains('html') && con.getResponseCode() 200) { |
returntrue; |
} |
} catch (finalException e) { |
} finally { |
try { |
con.disconnect(); |
} catch (finalThrowable e) { |
} |
} |
} |
returnfalse; |
} |
/* Return string not needed but maybe useful for the future */ |
privateStringgetDllink() { |
String dllink = br.getRegex(''VideoURL's?:s?'((rtmp http)[^']+)').getMatch(0); |
if (dllink !=null) { |
dllink = dllink.replaceAll('', ''); |
} |
json = dllink; |
return dllink; |
} |
@Override |
publicvoidreset() { |
} |
@Override |
publicvoidresetDownloadlink(finalDownloadLinklink) { |
} |
@Override |
publicvoidresetPluginGlobals() { |
} |
} |
Jdownloader 2.0 Beta
Copy lines Copy permalink