Challenge Overview
We are working on a new project for the Hercules client for Facebook Live integration into an app that will be displayed on TVs. This challenge will look at the playback for currently live videos (not past live videos), and will switch playback from the embedded IFrame to using dash.js to play back the MPEG DASH streams that Facebook uses internally.
DASH stream
Facebook does *not* publish the DASH streams in an easy-to-consume fashion (that I could find). Instead, we'll need to parse them out of the video page:
So, for a given link like this:
https://www.facebook.com/GameRant/videos/10153975978347705/
We will load the URL and parse out the MPD link like this:
https://video-syd1-1.xx.fbcdn.net/hvideo-ash5/v/dash-ld/10153975978352705.mpd?_nc_rl=AfB1eyMeb5xXYU1f&oh=f82b907863e8e1a456929a339d8921d9&oe=57DE605B&_nc_p_n=2&_nc_p_o=4
The .mpd extension is the MPEG DASH playback link we want, but it's a signed link, so the rest of the URL parameters are required for playback.
Signature
Because the link is signed, we need to do the parsing each time a user wants to play back a specific live video.
Playback
The task for this challenge is to update the live playback screen to use the MPEG Dash link, dash.js, and remove the embed IFrame functionality currently in place. A good way to test this is to use Safari or Firefox, without the Flash player installed because the current IFrame requires Flash. You should be able to see live video playback without Flash. Note that past live videos work regardless, so make sure to test with a current live video, not a past one.
Heroku / Node.js
This app will target deployment to Heroku using Node.js.
DASH stream
Facebook does *not* publish the DASH streams in an easy-to-consume fashion (that I could find). Instead, we'll need to parse them out of the video page:
So, for a given link like this:
https://www.facebook.com/GameRant/videos/10153975978347705/
We will load the URL and parse out the MPD link like this:
https://video-syd1-1.xx.fbcdn.net/hvideo-ash5/v/dash-ld/10153975978352705.mpd?_nc_rl=AfB1eyMeb5xXYU1f&oh=f82b907863e8e1a456929a339d8921d9&oe=57DE605B&_nc_p_n=2&_nc_p_o=4
The .mpd extension is the MPEG DASH playback link we want, but it's a signed link, so the rest of the URL parameters are required for playback.
Signature
Because the link is signed, we need to do the parsing each time a user wants to play back a specific live video.
Playback
The task for this challenge is to update the live playback screen to use the MPEG Dash link, dash.js, and remove the embed IFrame functionality currently in place. A good way to test this is to use Safari or Firefox, without the Flash player installed because the current IFrame requires Flash. You should be able to see live video playback without Flash. Note that past live videos work regardless, so make sure to test with a current live video, not a past one.
Heroku / Node.js
This app will target deployment to Heroku using Node.js.
Submission format
No video is required for this challenge.
Your submission should be a patch file against the code mentioned in the forum.
Your patch file should include the README.md with the appropriate setup and validation information needed by the reviewers
No video is required for this challenge.
Your submission should be a patch file against the code mentioned in the forum.
Your patch file should include the README.md with the appropriate setup and validation information needed by the reviewers