Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Chrome Extension that stores video sessions statistics


The extension collects browsing history by parsing events available from the Chrome WebRequest APIs . This API exposes all necessary information to identify the start and end of video sessions, as well as the HTTPS requests and responses for video segments. To collect video quality metrics, we first used the Chrome browser API to inspect the URL of every page and identify pages reproducing video for each of the video services of interest. After the extension identifies the page, collection is tailored for each service:

  • Netflix: Parsing overlay text. Netflix reports video quality statistics as an overlay text on the video if the user provides a specific keystroke combination. We injected this keystroke combination but render the text invisible, which allows us to parse the reported statistics without impacting the playback experience. This information is updated once per second, so we adjusted our collection period accordingly. Netflix reports a variety of statistics. We focused on the player and buffer state information; including whether the player is playing or not, buffer levels (i.e., length of video present in the buffer), and the buffering resolution.
  • YouTube: iframe API. We used the YouTube iframe API to periodically extract player status information, including current video resolution, available playback buffer (in seconds) and current playing position. Additionally, we collect events reported by the
  • Twitch and Amazon: HTML 5 tag parsing. As the two services expose no proprietary interface, we generalized the module developed for YouTube to solely rely on the


Install the extension on a Chrome browser:

  1. Open the extensions manager: chrome://extensions/
  2. Enable developer mode
  3. Click on the Load unpacked extension button and select to the extension folder

At this point the extension will start tracking activity on the selected services.

To automate session generation, use the included python script available in the tools folder. The script, uses the experiments_control package. Follow the instructions the tool's page for installation. Ones installed, automated collection can be performed using the python script tools/ Instructions on how to configure and run the tool are available in the file.

Finally, to parse the generated data, use the videoanalysis scripts.


For any question, please use the issues tracker or contact one of the authors of the paper:

Inferring Streaming Video Quality from Encrypted Traffic: Practical Models and Deployment Experience.
F. Bronzino, P. Schmitt, S.Ayoubi, G. Martins, R. Teixeira, N. Feamster.
To appear in the Proceedings of the ACM on Measurement and Analysis of Computing Systems (POMACS) and at ACM Sigmetrics 2020, Boston, USA, June 8-12, 2020.


Tools used to collected video session data (with ground truth) for a number of service






No releases published


No packages published