In lovely pseudocode:
$proxies = retreiveProxies($numberToFetch = (int) $_GET['keywords'], $type = ProxyType.Anonymous);
$referers = $WebScraper::getEntriesByKeywords($keywords = implode(',', $_GET['keywords']));
for ($i = 0; $i < $_GET['views_to_add']; $i++) {
$request = makeHttpRequestFromProxy($proxy = $proxies[$i],
$url = "https://www.youtube.com/watch?v={$_GET['video_id']}");
$request->setButtonPressedStatus($buttonId = 'btn-like', $status = true);
$request->setReferrer($referers[rand($min = 0, $max = sizeof($referers)]);
$request->POST();
sleep(rand(0, YouTube::getVideoLength($id = $_GET['video_id']));
}
Just make the requests look like they are coming from actual users.
Youtube probably has automated systems to halt the watch count (or at least dilute 10 views into 1 or someting) if the video is getting loads of views. They may also look at referers for the video id, so crawling for the the video id may be a good idea.