I need to create a web service that given a YouTube URL will output a MP3 file with the audio of the video, and was wondering how I could host something like this. Amazon EC2, or just normal web hosting?
There are probably some open source converters in Linux that could pull out the audio for you.
I agree with micmcg you need a virtual host not just an ISP. And in addition, the choice of which hosting provider may all really boil down to a question of cost and maybe performance.
http://aws.amazon.com/ec2/#pricing says that inbound traffic to EC2 is free until June 30. That video file that will need to be download will be inbound traffic, and can get pretty big..., but downloading that into EC2 will be free.
The outbound side of EC2, though, costs $0.15/Gb. And then there's the instance charge of $0.10/instance per CLOCK hour. Thats not a cpu hour, thats $0.10 per hour, $2.40 per day, $72 per month. And the $0.10 instances -- the last time I tried EC2 -- were about as fast as my old Fujitsu P2040 laptop from 2002.
If you were with Linode, you get decent performance by bursting over a multicore cpus at no charge, and you get generous traffic allotments. The monthly charge for presence could be less or more than $72/month depending on how much RAM you want and how many others you are willing to share with in a shared virtual-hosting environment. But you will have to count up those videos you are downloading somehow. The charge for going over a traffic allotment is steeper than renting a new virtual machine, and they have an API that lets you add machines to your account programmatically and deallocate for pro-rate refunds (sounds like an accounting nightmare but would be fun to play with).
You'll need more than just shared hosting, more like a virtual or dedicated machine considering the amount of customisation you'll be doing to the instance. You could do it on EC2 or any of the other 'cloud' providers (linode etc) or on a "normal" web host who offers virtual/dedicated hosting.