Cacophony is a tool for creating and viewing interactive videos, especially music videos, using HTML5 video and canvas elements and Javascript. Interactive elements include visuals/story adapting in response to user input as text, mouse movement, drawings, and choices (choose-your-own-adventure). Input from the viewer can affect the subsequent video, and also be sent to a server for integration with other Web applications (social networking, sharing, and geotagging), which is possible because effects are rendered on-the-fly in the browser, not pre-rendered like traditional video. Input can also come from external sources (RSS and JSON), so you can integrate external data, or previously generated data, back into subsequent views of the video.