"Flexible Field" for Drupal I am sorry for the vague question but I have no idea about where to start.

Please think of a scenario that, you created a video content type and you want your site visitor either upload their video files to your site, or they use the embed codes from any third party providers (youtube, vimeo etc.). For the sake of providing a clean GUI, you do not want to show both fields, but based on the choice of your user (maybe an image combo), you either show the file upload field or text area field (where they put the embed code in)

My question is, I wonder if there any elegant way to do it in Drupal without making any PHP, HTML or CSS modification?
I have done this in the past by adding a drop down that gives the user an option of selecting "embed" or "upload"  then use the Conditional fields module to show or hide the required field.