New route for entry types
You can have entry type specific templates for your entry pages, see this docs article on how you can do this. And for your archive pages, just set a route for each of them and point it to the corresponding index/listings template.

So basically you end up with something like this for your entries:


media/_entry.html (example.com/2014/01/01/example-entry)
media/_types/audio.html (included in _entry.html if entry type is audio)
media/_types/video.html (included in _entry.html if entry type is video)
...


and this for your archive pages:


media/index.html (example.com/2014/01/01/ etc.)
media/audio/index.html (example.com/audio/)
media/video/index.html (example.com/video/)
...


If you don't want to set new routes for the entry type specific archive pages you can also put the templates in a folder whose index.html template file is called automatically if no route exists (eg. audio/index.html for example.com/audio/).

Additionally I'd make good use of include and extend in these templates to make this as DRY and easy to maintain as possible.