If you can use jQuery, then a better approach would be to not have inline scripts at all (really considered bad form).
Try something like this, instead:
<input type="button"
class="text"
value="@video.Text"
data-url="@String.Format('{0}',url);" />
(broke it into separate lines for ease of readability ... also, depending on how the template renders, you may run into accidental issues of terminating strings improperly, which is why I changed the "{0}" to '{0}')
Now, in your javascript:
// when the dom is ready
$(function() {
$('.text').click(function(evt){
evt.preventDefault();
var url = $(this).data('url');
videochange(url);
});
});
This properly separates your roles and responsibilities... server-side code stays server-side, and provides the data to the view. The view/client-side scripting then handles view-side interaction, without messily trying to merge syntax between two different languages.