Chromecast device only requires external power of your hdmi port is v1.3 or less. Also, if your TV has a USB port you can get power from that.
If your TV is older then a year then Chromecast would probably need external power.
Roku requires external power. As far as I know, all others do as well.
you need to know if your tv has a HDMI port for which Roku you want. I went with the Roku 2xd as it was the top of the line for NON-HDMI port-ed tellys....(we were given a flat screen that is a wee bit old)