Software is the cheap option, but not necessarily the best since recording/encoding video is very CPU intensive and you will notice a drop in performance. However, I positive that most people who upload gameplay video to youtube goes this route.
Hardware is the more expensive option, and is generally the best for performance because you will not have to worry about performance loss. Did I mention it was expensive? You need to buy the device itself which costs over $100. The Hauppauge HD PVR 2 Gaming Edition seems to be pretty popular and it costs $162 at amazon. But it does not do the recording on it's own you need another PC to do the actual recording.
http://www.amazon.com/Hauppauge-Edition-Definition-Capture-Passthrough/dp/B008ZT8QKO
It works like this:
1. Connect graphics card of the gaming PC to the Hauppauge HD PVR 2 via HDMI In.
2. Connect the HDTV or monitor to the HDMI Out on the device.
3. Connect the recording PC to the USB connector.
This setup allows for
zero performance loss when capturing gaming video. However, it is not exactly inexpensive. If you are just capturing and uploading for fun, then I recommend the software route since it is cheaper. However, if you already have a 2nd PC or a laptop that can handle the recording, then this doing hardware video capture just got a whole lot less expensive, but not as cheap as software. If you plan on creating your own channel to get lots of subscribers and generate money (hopefully), then I definitely recommend the hardware option.