You could have a directory inaccessible from the outside world where you have all your video files. Then you could have a database table with a structure like:
videos
---------------
id
uri
temp_url
timeout
Where uri
is the location of your real video file and temp_url
is a random URL that you generate. The timeout
field contains a timestamp describing when the temp_url
expires and you have to generate a new one. You could set the timeout to 5 minutes from when you generate a new temp_url
or 10 minutes. Up to you.