Tu stai cercando di far eseguire una funzione JavaScript all'interno di un codice ASP?! 
Chiaramente non può funzionare così.
Un linguaggio lato server (ASP) e uno lato client (JavaScript) non possono interagire in quel modo.
Attraverso il codice ASP, che viene eseguito dal server, tu ricavi un documento HTML in cui c'è, tra le altre cose, del codice JavaScript. Il documento HTML (assieme al JavaScript) non viene però eseguito lato server; sarà piuttosto analizzato ed eseguito lato client una volta che arriva sul browser.
Va da sé che non può essere eseguito alcuno JavaScript nel momento in cui viene costruito il documento HTML in ASP, perché quella roba dovrà attendere ad arrivare al client per essere eseguita e, una volta che il documento arriva al client, ASP è bello che andato.
Il codice per recuperare la proprietà duration andrà quindi eseguito sempre nell'ambito JavaScript. Se vuoi che il valore restituito compaia nella pagina, dovrai aggiungerlo alla pagina attraverso eventuali metodi JavaScript, ad esempio usando document.write() o, meglio ancora, usando la proprietà innerHTML di un qualche elemento contenitore che avrai opportunamente predisposto per accogliere quel dato, o un qualcosa di analogo.
Inoltre, la proprietà duration può essere letta solo dopo che i metadata dell'elemento video sono stati caricati. Per poter quindi assicurarti che ciò avvenga puoi usare l'evento loadedmetadata di quell'elemento video.
Qui un semplice esempio:
codice:
<!DOCTYPE HTML>
<html lang="it">
<head>
<title>Esempio</title>
</head>
<body>
<video id="myVideo" width="320" height="176">
<source src="https://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4">
</video>
<div id="durataVideo"></div>
<script>
const vid = document.getElementById('myVideo');
vid.onloadedmetadata = function(){
document.getElementById('durataVideo').innerHTML = 'Durata (secondi): ' + this.duration;
};
</script>
</body>
</html>