downstream_electron | DOWNstream For Electron
kandi X-RAY | downstream_electron Summary
kandi X-RAY | downstream_electron Summary
DOWNstream is an open-source plugin to use with Electron allowing encrypted MPEG-DASH and Smooth Streaming streams to be safely downloaded and stored locally on a user’s Windows or Mac computer.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of downstream_electron
downstream_electron Key Features
downstream_electron Examples and Code Snippets
Community Discussions
Trending Discussions on downstream_electron
QUESTION
I am investigating whether is it possible (I am sure it is, I mean simple way) to build a Java-based client desktop App to play DRM protected video stream.
DRM: DASH CENC DRM1, PlayReady, Widevine Classic\Modular, FairPlay.
VLCJ supports the input-from-memory feature to implement custom protocols or DRM but it looks like a painful digging into DRM specifications.
There is a Node.js open-source project DOWNstream for Electron which can help with Widevine DRM. The article describes Java and Electron integration (source) but I guess it is accidental complexity in this case.
Previously I didn't face with video-streaming domain and I wouldn't like to reinvent the wheel so my questions are:
- It seems that there are no "pure" Java implementations. Why? Because of format wars? security issues?
- Do you happen to know any simple way (DalvikVM supports Widevine out of the box) to create App without involving "browser techs" like JS?
Thank you. I would appreciate hearing your thoughts.
...ANSWER
Answered 2019-Dec-06 at 11:13I think looking at how the DRM's are provided on platforms may help you understand the options and let you think about how you want to approach your solution.
The DRM client functionality, i.e. the DRM functionality which resides on a phone or tablet or laptop etc as opposed to the DRM server side functionality, is generally built in by the device or OS vendor when it the device or OS is being produced/manufactured. For some DRM's on some devices it is also possible to add it via a SDK.
Most DRM's are used via 'native' players in mobile devices and tablets and via the browser on PC's, laptops etc so this is the usual default that you can generally rely on to be supported. Smart TV's and games consoles are more varied and can be either via browser or native depending not he device.
Recently, nearly all mobile and tablet browsers have added support for browser based DRM also, but many DRM's on laptops are restricted to the browser, or more specifically the CDM (Content Decryption Module) browser add on which is DRM specific.
There are DRM's which are supported outside the browser on PC's and laptops - for example Windows based devices will generally support PlayReady DRM in a way that can be accessed by applications. Microsoft provide more infomrtaiopn on this here:
There is a nice diagram which summarises different devices at the above link which I've copied below also as it helps explain:
I am not aware of a similar Widevine or FairPlay support on PC's or laptops although ones may exist or be in development.
So, going back to your problem, the reason that most cross platform applications use Javascript and browser technology for DRM on laptops and PC's is not really a language issue, rather it is because via the browser is the only way to access the DRM functionality on some laptops and PC's.
For Windows you have the option to use the Universal Windows Platform API but this still may not give you want you are looking for and is Windows and PlayReady specific.
QUESTION
I'm trying to get protected playback of offline content within Electron.
I'm trying to use: https://github.com/castlabs/downstream_electron
along with their Widevine-compatible Electron build: https://github.com/castlabs/electron-releases/releases/tag/v1.8.7-hdcp-vmp1010
Which should, according to downstream_electron's README.md, "allow protected playback of offline content within Electron".
I have a proof-of-concept set up with dashjs where I can extract the session information and download a drm-protected dash manifest, along with the audio and video segments.
I'm using publicly available assets from ezdrm:
manifest: http://wvm.ezdrm.com/demo/stream.mpd
license server: http://widevine-dash.ezdrm.com/proxy?pX=BF9CEB
When I call DownstreamElectronFE.downloads.getOfflineLink() after downloading the asset, it gives me back this:
...ANSWER
Answered 2018-Sep-18 at 10:28You need to request the license ahead of time, and specifically request a license that allows persistence (offline use). Basically, you ned to trigger the license request, before going offline. There might be a function call to do this somewhere, otherwise you could start playback to get the license, and terminate it afterwards.
Note that the license issued has to allow offline usage, that is not the default. The EZDRM demo stuff, might allow you to request such a license, but it is not likely to give you one like that by default.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install downstream_electron
npm run build
npm start
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page