Como obter com segurança a extensão do arquivo a partir de um URL?
Considere os seguintes URLs
http://m3u.com/tunein.m3u http://asxsomeurl.com/listen.asx:8024 http://www.plssomeotherurl.com/station.pls?id=111 http://22.198.133.16:8024
Qual é a maneira correta de determinar as extensões de arquivo (.m3u / .asx / .pls)? Obviamente, o último não possui uma extensão de arquivo.
EDIT: Esqueci de mencionar que m3u / asx / pls são listas de reprodução (arquivos de texto) para fluxos de áudio e devem ser analisadas de maneira diferente. O objetivo determina a extensão e envia o URL para a função de análise apropriada. Por exemplo.
url = argv[1]
ext = GetExtension(url)
if ext == "pls":
realurl = ParsePLS(url)
elif ext == "asx":
realurl = ParseASX(url)
(etc.)
else:
realurl = url
Play(realurl)
GetExtension () deve retornar a extensão do arquivo (se houver), de preferência sem se conectar ao URL.