I can use the advanced options in YouTube or Google when searching for video clip, but I can only search for a pre-defined range of duration (short, long), not the duration that I want. For example, how can I search for every clip that has a duration between 30 seconds and 150 seconds?
There's no way to specify an exact duration in the generic YouTube search other than their default short and long durations.
The only place on YouTube you can do this is on your video manager page, which manages your personal videos. As the docs say, you can search using
[operator] can be
[time] is an integer in seconds. This generates a URL such as
https://www.youtube.com/my_videos?o=U&sq=length%3E30+length%3C150 using the seconds you gave in the question.
I tried using this same query format in the URL of a regular YouTube search (thinking perhaps it's not in the UI but may still be allowed) but it didn't filter the search any more. That means it's not possible in the generic search.