You can also use devices that are USB Video Class (UVC) compliant, thus which don't require any drivers. libuvc can be used to capture from these devices: https://github.com/ktossell/libuvc You can get cheap off-brand UVC USB grabbers, or you can get higher quality gear, like the AJA U-TAP: https://www.aja.com/en/products/u-tap Admittedly though I haven't seen anything that comes close to £45 :-)
Depending on your project, it might be worthwhile using GStreamer instead of tying yourself to a specific driver like libuvc. There's a lot you can do with just GStreamer's command-line tools -- for some examples see the first 5 minutes of my talk[1] -- and if you need more you can drop down into C or Python, though admittedly the learning curve is fairly high.
[1]: http://www.youtube.com/watch?v=Fdn2LxxM7wA&list=SPSIUOFhnxEi...