Skip to content
soundcloud-style time-tied comments for youtube that can be shared in realtime
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md
icon_128.png
icon_48.png
manifest.json
package.json
webpack.config.js

README.md

💬 FootNotes

soundcloud-style time-tied comments for youtube

Comment on videos for personal records, or share in realtime with friends. FootNotes is a chrome extension that was made during UAlberta's HackED 2016.

This project is currently under further development — ideas, praise, critique is appreciated. Just open an issue.

Demo

After installing, setup the hotkey in chrome://extension. When watching a youtube video activate FootNotes by typing in the hotkey. A small banner will appear on the bottom of the youtube webpage — comment on the left, share on the right.

demo

Install

Chrome webstore

OR

From source (for development):

Clone, install deps, and build:

$ git clone https://github.com/ahoskins/FootNotes.git && cd FootNotes
$ npm install
$ webpack -d --progress --watch

Load into chrome:

  1. in chrome://extensions select "load unpacked extension" (make sure developer mode is checked)
  2. set the hotkey (bottom of chrome://extensions)

How it Works

Comments are stored in chrome.storage.sync, a special partition of localstorage for the chrome user account. This means that by signing into your chrome account on any machine the FootNotes time-tied comments will be there.

Instead of using peer-to-peer (like WebRTC), sharing is done with a small backend (closed source) that uses socket.io. This means sharing is realtime when both users are online, but also works when only one is online because the backend buffers the shared comments in MongoDB. Once comments are transferred to the receiver, they are deleted from the database.

Extensions (just like the developer console) have full access to a webpage's DOM, but not the running JavaScript. To get the youtube video's current playtime, FootNotes injects code into youtube.com. Injected code has the same privilages as code that was there from the beginning, so this injected code is FootNotes' inside agent for things like current playtime and total video length.

You can’t perform that action at this time.