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:
- Open the extensions manager: chrome://extensions/
- Enable developer mode
- 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/video_collection.py
. 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.