Tuesday, December 20, 2016

Downloading Brightcove Videos

Got some Brightcove webinars from work that I need to download, but finding it quite challenging. Most of the blog posts talk about disabling Flash, enabling developer tools, then setting device emulation and/or user-agent spoofing to Apple iPad.

Logic here is that Brightcove typically transports videos via Flash, as this makes saving videos for offline very difficult. By spoofing the device as an Apple iPad, the theory is that the Brightcove player should fallback to HTML5 mode and we should then be able to save the file as mp4.
So the steps are:

  1. Disable Flash via chrome://plugins
  2. Go to Developer Tools (Ctrl-Shft-I), and switch to Apple iPad mode.
  3. Go to Network tab and filter for mp4.
  4. Reload the page (F5) and wait for the mp4 link to show up.


What I noticed is that disabling the Flash plug-in doesn’t really help. I’m not seeing any mp4 URL. Other blog posts talk about rtmp hacking. Again, I don’t see any reference to rtmp on the Network tab.

Now that I think about it, Brightcove probably doesn’t even use Flash anymore, as almost everyone else is now using HTML5 for video streaming. A closer look at the network traffic shows that the Brightcove player is sending over binary blobs of video using xhr (XMLHttpRequest/Response). It’s possible that the player is not falling back to mp4 mode because it assumes the Apple iPad (and Safari) can handle HTML5 XHR. To test my theory, I switched the device emulation to Google Nexus 4, and this time the tricked worked just fine – even without disabling Flash. On the Network tab, I can see the mp4 link, which can be copied and pasted to your favourite downloader.

While this worked for now, there’s no telling what Brightcove might come up next. For reference, below are some blog posts on what other people have done.

Using rtmp:
http://johntantalo.com/blog/extracting-video-from-brightcove-player-with-rtmpdump/
http://forum.videohelp.com/threads/354508-Brightcove
http://www.benfrancom.com/2016/03/17/download-brightcove-videos.html
http://mrbluecoat.blogspot.com.au/2013/11/download-brightcove-videos-tutorial.html
https://www.reddit.com/r/techsupport/comments/2ro9vn/need_help_downloading_embedded_video/

Using mp4 fallback:
http://grumblesmeckerecke.blogspot.com.au/2015/01/how-to-download-brightcove-videos.html
http://words.bombast.net/download-brightcove-videos/
http://www.mikewebguy.com/2013/08/20/save-brightcove-videos-from-google-chrome/
https://tjkelly.com/blog/how-to-download-brightcove-video/

7 comments:

  1. Thanks for the above. Can you elaborate more on switching the device emulation to Google nexus 4 .
    Even I tried the above using Google chrome developer tools but it was rendering XHR type only.

    ReplyDelete
  2. I use the following method to download videos from Brightcove, Lynda, Udemy, Digital Tutors, Pluralsight etc.
    Here is the easy guide http://www.allavsoft.com/how-to/download-brightcove-training-videos.html

    ReplyDelete
  3. I'm using Chrome Version 58.0.3029.81 beta (64-bit) on Windows 7. Can you please give the user string for Nexus 4? Thanks.

    ReplyDelete
  4. In chrome on macOS all i needed to do was change the user-agent to Nexus 7 and monitor the network tab in dev tools for mp4 until it popped up. When it did, copy and paste to a new tab then save.

    Used this user agent switcher:
    https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake/related?hl=en

    ReplyDelete
  5. I also got this to work with the Nexus 7 device emulation. It was easy to enable by clicking dropdown menu of devices and choosing Edit, then checking the box next to Nexus 7.

    ReplyDelete
  6. Allavsoft still works for brightcove, lynda, masterclass etc
    Here is the step by step guide https://www.allavsoft.com/how-to/download-brightcove-training-videos.html

    ReplyDelete