YouTube Video Searcher
Platform: mIRC
Published Feb 29, 2008
Updated Dec 13, 2008
This here is a YouTube video searcher. It returns the first three videos of your search result.
It returns the Title, Date Added, User, Length, Views, Rating, and URL for each video.
Syntax: [!YouTube | /YouTube] [Search Criteria]
If you want to change how many videos it returns, you can change "if (%n. [ $+ [ $sockname ] ] >= 3) {" to whatever number of videos you want it to return.
Here's some screens:
Enjoy
;~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*;
; YouTube Video Searcher ;
; Made by MountainDew ;
;*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~;
on $*:text:/^[!@.](y(ou)?tube|yt)\b/Si:#:{
youtube $+($ticks,$chr(1),$chan,$chr(1),$2-)
}
alias youtube {
if ($numtok($1-,1) >= 2) {
tokenize 1 $1-
var %y.sock $1
var %y.chan $2
var %y.text $3-
}
else {
var %y.sock $ticks
var %y.text $1-
}
if (!%y.text) {
$iif(%y.chan,msg $v1,echo -a) Syntax: $iif(%y.chan,!,/) $+ YouTube [search criteria]
halt
}
$iif(%y.chan,describe $v1 searches,echo -a Searching) for YouTube videos matching $qt($+(,%y.text,)) $+ ...
sockopen youtube. [ $+ [ %y.sock ] ] www.youtube.com 80
sockmark youtube. [ $+ [ %y.sock ] ] $+($iif(%y.chan,msg $v1,echo -a),$chr(1),%y.text)
}
on *:SOCKOPEN:youtube.*: {
sockwrite -nt $sockname GET /results?search_query= $+ $urlencode($gsm($sockname,2,1)) HTTP/1.1
sockwrite -nt $sockname Host: www.youtube.com
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:youtube.*: {
if ($sockerr) {
$gsm($sockname,1,1) Error connecting to YouTube: $sock($sockname).wmsg
sockclose $sockname
}
else {
var %x. [ $+ [ $sockname ] ]
sockread %x. [ $+ [ $sockname ] ]
if (no videos found for isin %x. [ $+ [ $sockname ] ]) {
$gsm($sockname,1,1) The search for $qt($+(,$gsm($sockname,2,1),)) returned no results.
sockclose $sockname
}
if ($regex(%x. [ $+ [ $sockname ] ],/<a id="video-url-.+?" href="(\/watch\?v=.+?)".+<img title="(.+?)"/i)) {
set %yt.url $regml(1)
set %yt.title $regml(2)
}
if ($regex(%x. [ $+ [ $sockname ] ],/<span id="video-run-time-.+?">(\d+:\d+)<\/span><\/div>/i)) set %yt.length $regml(1)
if ($regex(%x. [ $+ [ $sockname ] ],/(\d+? .+? ago)/i)) set %yt.added $regml(1)
if ($regex(%x. [ $+ [ $sockname ] ],/<img class="ratingVS.+?" alt="(.+?)" src=/i)) set %yt.rating $regml(1)
if ($regex(%x. [ $+ [ $sockname ] ],/class="video-view-count">(.+) views</span>/i)) set %yt.views $regml(1)
if (video-from-username isin %x. [ $+ [ $sockname ] ]) {
inc %n. [ $+ [ $sockname ] ]
$gsm($sockname,1,1) 9 $+ $chr(149) 4Title: $hf(%yt.title) 4Added: %yt.added 4User: $hf($v2) 4Length: %yt.length 4Views: %yt.views 4Rating: $iif(%yt.rating,$v1,0) $+ /5 4URL: http://www.youtube.com $+ %yt.url
if (%n. [ $+ [ $sockname ] ] >= 3) {
sockclose $sockname
unset %n. [ $+ [ $sockname ] ] %yt.*
}
unset %yt.*
sockmark $sockname $+($gsm($sockname,1,1),$chr(1),$gsm($sockname,2,1))
}
if (<!-- end search results --> isin %x. [ $+ [ $sockname ] ]) sockclose $sockname
}
}
alias hf return $remove($replace($regsubex($1-,/^[^<]*>|<[^>]*>|<[^>]*|$|&[^;]+;/g,$null),",",>,>,<,<,&,&, ,$chr(160)),?,$chr(9))
alias gsm return $gettok($sock($1).mark,$2,$3)
alias urlencode return $regsubex($1,/(\W)/gS,% $+ $base($asc(\1),10,16,2)))