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

[WIP] ContentDownloader Tool #1006

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

PaulRosset
Copy link
Contributor

PS: This is a new PR from #548.

What's included?

Download a movie content online then play it offline

  • Build on top of the rx-player
  • Full implementation API for download2go (Download,Resume,Pause, Delete, Get)
  • Dash-mpeg (Base and Template representation index supported)
  • Download of encryted content supported with license and state persistent (EME-MSE-Widevine-Playready)
  • Use of IndexDB, to store assets.
  • Available demo here: https://d2g-canalplus.paulrossethings.com/
  • Typescript/rxjs
  • Add a single dependencie: idb, a wrapper to use indexDB with promises

Review

  • Check together for logging strategy
  • Check for forgotten use of feature that are not available in certain browsers (IE11) ?
  • Need feat/offline-playback PR to work

@PaulRosset PaulRosset changed the base branch from master to next September 15, 2021 13:50
@PaulRosset PaulRosset mentioned this pull request Sep 15, 2021
@PaulRosset PaulRosset added enhancement This is a new feature and/or behavior which brings an improvement to the RxPlayer Local Manifest Relative to the RxPlayer's LocalManifest (i.e. playback of loaded contents) tools Relative to the RxPlayer's tools work-in-progress This Pull Request or issue is not finished yet labels Sep 15, 2021
Copy link
Collaborator

@peaBerberian peaBerberian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a shallow first glance over this branch as we might want to finally merge it soon.

I just scrolled over if for now to look principally at interactions with the core of the RxPlayer

@peaBerberian peaBerberian added Priority: 3 (Low) This issue or PR has a low priority. and removed Priority lowered labels Feb 8, 2022
@et84121
Copy link

et84121 commented May 13, 2022

Hey folks, thanks for your awesome work on RX-Player.
what is the status of this PR? 
I want to use the offline playback feature. 
Is there anything I can do to help?

ping @peaBerberian

@peaBerberian
Copy link
Collaborator

peaBerberian commented May 13, 2022

Hi @et84121, and thanks!

It is still a feature that is wanted in the long term, but its priority was lowered at Canal+.

We are however going back on it once in a while to be sure this PR does not go too stale.
I know @alaamoum worked on it a little some months ago. Though I don't see his branch, did you push your work Achraf so we could have a better base - even if its not functional ?


Anyway, if you want to work on it, you're very welcome to do so.

The global idea is too use IndexedDB APIs to store media segments and metadata, to later be able to play it at any time through the RxPlayer's "local" transport (offline playback though the RxPlayer's "local" transport is actually already used at Canal + on some set-top boxes, though the content-downloading part is not done there through web APIs nor by the RxPlayer).

What PaulRosset has done here was actually working at the time for most contents, but it had some rough edge.
Especially, last time I checked, it wasn't completely satisfactory on encrypted content playback and some polishing needed to be done for the edge cases (for example, what to do if the user closes the page before the tool has completely remove a content that was asked to be removed ?).
I'm not sure of how much efforts are needed to rebase that branch to the current RxPlayer version, though Achraf might have a better idea on this.


If you don't want and/or don't have time to implement the whole feature, you could do something simpler on your side that just handle the contents you encounter. Here, you would just have to output a format compatible to the RxPlayer's "local" transport.

@et84121
Copy link

et84121 commented May 14, 2022

Hi @PaulRosset, Thank you for your thorough response.

I am working on rebasing this branch, but I am not sure I will complete it finally.

In addition, I have a few questions I want to ask.

  • Persistent license renewal:
    Is there any mechanism to achieve persistent license renewal? In more detail, does it store a new persistent license after the existing license has been renewed?
  • remove Rx-JS:
    I have read that you think Rx-JS is not so good in release notes. Should I remove it while I rebase this branch?

Thank you again for your detailed response.

@peaBerberian peaBerberian changed the base branch from next-v4 to dev January 25, 2024 11:38
@peaBerberian peaBerberian added Priority: 4 (Very low) This issue or PR has a very low priority. and removed Priority: 3 (Low) This issue or PR has a low priority. labels Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement This is a new feature and/or behavior which brings an improvement to the RxPlayer Local Manifest Relative to the RxPlayer's LocalManifest (i.e. playback of loaded contents) Priority: 4 (Very low) This issue or PR has a very low priority. tools Relative to the RxPlayer's tools work-in-progress This Pull Request or issue is not finished yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants