v2.2.0
- Preliminary playlist support
- Added ability to search YouTube (experimental)
- hulu: Detects video title
- hbo: Fixed some issues with sync
v2.1.5
- Added workaround for embedding Netflix on TwoSeven
- Issue caused by recent change to Netflix cookies
- Some cookies were set to
SameSite=Lax
that caused them to be inaccessible when embedded - Added special toast messages to inform users about problems with Netflix on TwoSeven
- Added new extension settings to bypass
SameSite
cookie restrictions- More information on this is available on a dedicated blog post
- Fixed Crunchyroll’s hard-subtitles extension settings to be more reliable
v2.1.4
- Added preliminary support for Hulu
- Fixed bug in funimation that prevented episodes with no subtitles from loading
- Refactored Amazon logic to be more robust
- Fixed most instances of websites refusing to load when embedded
- YouTube: Fixed extension setting not disabling captions properly
- Crunchyroll now has an option in the extension settings to force hard-subtitles
v2.1.3
- Added preliminary support for MPEG-DASH
- Does not play DRM-protected streams
- Added Plex support
- Added support for vrv.co
- Added framework for webpage-framing
- Added support for Shudder using webpage-framing
- Fixed Crunchyroll not working properly on Firefox
You can find more information on all of these here
v2.1.2
- ‘Pause on website’ now properly grays out the extension icon
- Firefox will now show video previews properly under ‘Show Media’
- Removes certain service workers due to WebExtension limitations
- Released source-code for certain portions of the extension
Summary
Firefox video previews
Due to differences in the way Chrome and Firefox implements their Content Security Policy, Firefox would not render video previews properly. Initially, to me, the problem seemed to be that hls.js uses blob:
s to create the video and Mozilla forbids adding blob:
to an extension’s CSP. Turns out that the real problem was that the blob was being created within a webworker that was instantiated by hls.js. Thankfully, hls.js allows for disabling webworkers and once we did that, previews began to work once again. Many thanks to the addons.mozilla.org (AMO) reviewers who not only helped in identifying the problem but also in fixing it.
Service worker conflict
The network requests made by a service worker seem to fall outside the purview of the WebExtension’s webRequest
API. This means that any website that fetches/caches content will not have its headers overwritten by our extension’s webRequest
listeners. All of this culminated in our extension being unable to embed websites that ship with X-Frame-Options: Deny
which couldn’t be overwritten.
To handle this, we currently service workers that are registered from Amazon and Netflix. We will continue to do this until the APIs and interactions between WebExtensions and Service Workers are standardized. If you believe you are facing issues due to this, let us know and we’ll try and look into alternatives.
Open-sourcing (parts of) the extension
Over the years, the TwoSeven extension has grown very large. We’re working on cutting it up into pieces and open sourcing certain components. On that note, we quickly tore out two such components and put them up on github. We will work on cleaning up the code and documenting it, but feel free to check it out. Pull Requests are welcome as well. You can find the code here.
v2.1.0
- Improved detection and handling of MP4 files from third-party websites
- Added proper fullscreen support for HBO
- We’re now proudly built entirely on open-source code
Summary
MP4 from third-party websites
Most movies, TV shows, or really any long videos on the internet are no longer simple MP4 files. I’m talking about websites other than Netflix, Amazon, Hulu, etc. You know, the ones where you occasionally see DMCA takedown notices. These sites use a technology called HTTP Live Streaming (HLS) which allows them to encode the same video into different qualities and allow users to pick one of these qualities. If you’ve seen options to watch a video in 360p or 720p or 1080p, then that video probably uses HLS. It turns out that, in our excitement of having our extension flawlessly detect HLS videos, we forgot to implement the same level of detection for simple MP4 videos. This update fixes that and allows watching most, if not all, MP4 files on the internet together.
HBO Fullscreen
The HBO NOW website has been…challenging to work with and deserves an entire post. For anyone familiar with CSS that might be reading this, please take a look at how HBO has implemented its website layout and let me know if you’ve ever seen anything like it. I’ve heard of the fine line that exists between genius and insane, and I think the HBO NOW website’s CSS might be one of those lines.
To summarize, it made watching videos from HBO NOW in fullscreen near impossible on TwoSeven. It took a while, but we came up with a fix for it and pushed it out in this version.
Built on open-source
As of this version, the TwoSeven extension is built fully on open-source libraries! Although the extension itself isn’t open sourced, all proprietary pieces have been.
This doesn’t really impact the end-user in any way, but it should be a lot easier for us to guarantee security. This was a pretty big change in terms of the code and as a result, we decided to bump up the version to v2.1.0
v2.0.9
- Updated Amazon & Crunchyroll to reflect recent changes
- Extension version now shown under menu
- Fixed minor bugs in Netflix
- Added support for HBO NOW
- Now works with a larger number of third-party websites
- Fixed bug where loading video from external website would do nothing
Summary
Amazon
Amazon has recently begun using Service Workers which doesn’t interact well with WebExtensions (issue).
In short, the TwoSeven extension could no longer embed Amazon within twoseven.xyz due to requests made by the service worker bypassing WebExtension’s WebRequest APIs. As a result, header x-frame-options: sameorigin
would prevent the browser from embedding Amazon. To counteract this, the extension now removes the service worker every time you visit amazon.com. Since the extension really only runs on desktop or laptop computers, this shouldn’t negatively impact you in any way.
Crunchyroll
Crunchyroll has significantly altered their internal APIs which are used to access subtitles. The good news is that the process is now incredibly simple compared to what we had to do to fetch subtitles. All of the necessary information is contained within the episode page itself and with two simple pattern matches, we have all the information we need to allow you and your friends to watch Crunchyroll content together.
HBO NOW
TwoSeven now supports watching content from HBO NOW together! We’ve always wanted to support HBO NOW since watching Game of Thrones together was such a big reason we built this website in the first place, but this was impossible until recently as HBO was still using Flash. Yes, the very same Flash that you keep hearing about every now and then because of the security nightmare that it is. Thankfully, with Adobe stopping support for Flash, HBO decided to move to native HTML5 videos which TwoSeven can support!
v2.0.8
- Fixed bug in loading videos from external websites
v2.0.6/7
- Security enhancements
v2.0.5
- Fixed Netflix keyboard controls (space to play/pause, etc)
- Changed URL patterns
Summary
twoseven.xyz now uses history mode instead of hash mode. In other words, URLs of the form twoseven.xyz/<room>
instead of twoseven.xyz/#/<room>
. The extension has been updated to reflect this change.
v2.0.3
- Added support for interactive videos (Example)
- You can now view your friend’s webcam video even while watching videos in fullscreen
v2.0.2
- Updated extension to work with new Netflix UI
v2.0.1
- Fixed bug that prevented YouTube from working
v2.0.0
From this version, we will be posting a longer description of each change where applicable. The summary will still be available here but will be accompanied by a longer post describing the features and changes. A detailed description of all the changes in this version can be found here.
Summary
- Massive rewrite and bump up to new major version
- Can now watch video content from a large set of websites together
- Extension is now bound to twoseven.xyz account
- Allows for quickly watching videos together without having to manually log in
- Added ability to pause extension on websites
v1.4.1.2
- Updated to work after Crunchyroll website changes
v1.4.1.1
- Fixed an error while loading Netflix which would cause slowdown
v1.4.1
- Fixed a minor URL bug
- Fixed FAQ URL
v1.4.0
- Enabled watching crunchyroll together
- Added options to watch together in contextmenu entries
for YouTube, Vimeo and Crunchyroll
v1.3.54
- Fixed extension interfering with netflix.com
v1.3.53
- Fixed a sporadic bug in Netflix synchronization
v1.3.52
- Fixed race conditions and other small improvements
v1.3.51
- Improved iframe experience on certain websites
v1.3.5
- Fixed minor issue with chrome warning about extension
v1.3.4
- Improved performance with significant code cleanup
- Updated extension to match new VueJS-based layout
v1.3.3
- Improved overall functionality and Netflix handling
v1.3.1
- Minor bugfixes
v1.3.0
- Greatly reduced extension latency
v1.2.91
- Fixed packaging issues
v1.2.9
- Updated extension to reflect recent Netflix changes
- Restructured files in extension
v1.2.8
- Removed JQuery dependency
- Improved performance by optimizing some hot code paths
v1.2.7
- Updated Netflix extension to work with latest Netflix updates
- The extension no longer pulls files from our server. Instead, scripts are
updated on-the-fly.
v1.2.6
- Added logging
v1.2.5
- Minor change fixing broken extension packaging
v1.2.4
- Fixed Netflix seeking to random locations in the video
- Improved new-client logic for Netflix