Have a look at blamscamp and scritch-player projects that provide such functionality:
https://github.com/blackle/blamscamp
https://github.com/torcado194/scritch-player