Youtube 검색 스크립트

꽤 오래전에 만든 스크립트인데 이제서야 공개하게 되었다.
단, $mircdir 에 utf8.dll 파일이 필요하니 첨부파일을 다운로드 할것.

이 스크립트를 가져다 쓸 사람은 아래부터 복사해서 쓰면 된다. (mIRC 6.3 에서 정상작동 확인함)

; ————————————————————
; | Made by Xeriars                                                               |
; | (변경해서 쓰는건 니맘대로지만 이 부분은 지우지 말아주세요.)  |
; ————————————————————
on *:text:*:#: {
    if ($1 == @유튜브) {
      if (!$2) { msg $chan Usage : @유튜브 검색어 | halt }
      unset %youtube.*
      set %youtube.chan $chan
      set %youtube.word $2-
      set %youtube.url $urlencode($dll(utf8.dll,convertutf8,%youtube.word))
      set %youtube.count 1
      set %youtube.nick $nick
      sockclose youtube
      sockopen youtube www.youtube.com 80
      halt
    }
}

on *:sockopen:youtube*: {
  sockwrite -nt $sockname GET /results?search_type=&search_query= $+ %youtube.url $+ &aq=f HTTP/1.1
  sockwrite -nt $sockname User-Agent: Mozilla/4.0
  sockwrite -nt $sockname Host: www.youtube.com
  sockwrite -nt $sockname Connection: Close
  sockwrite -nt $sockname $crlf
}
on *:sockread:youtube: {
  sockread %tmp
  set %youtube.search0 약 <strong>
  set %youtube.search0 $dll(utf8.dll,convertutf8,%youtube.search0)
  set %youtube.search1 <div class=”v120WideEntry”><div class=”v120WrapperOuter”>
  set %youtube.search2 class=”video-description”>
  set %youtube.search3 <button class=”master-sprite ratingVS ratingVS-
  set %youtube.search4 class=”video-date-added”>
  set %youtube.search5 class=”video-view-count”>
  set %youtube.search6 <span class=”video-username”>
  set %youtube.error <div style=”margin-top: 10px”><span
  set %youtube.error2 icn_cycds_warning-vfl33982.gif

  if (%youtube.count == 2) {
    set %youtube.describe $dll(utf8.dll,convertlocal,$replace($remove(%tmp,$chr(9)),<b>,,</b>,))
    set %youtube.count 1
  }

  if (%youtube.error isin %tmp) {
    msg %youtube.chan ” $+ %youtube.word $+ ” 의 검색결과가 존재하지 않습니다.
    sockclose $sockname
    unset %youtube.* 
  }
  if (%youtube.error2 isin %tmp) {
    msg %youtube.chan ” $+ %youtube.word $+ ” 의 검색결과가 존재하지 않습니다.
    sockclose $sockname
    unset %youtube.* 
  }
  if (%youtube.search0 isin %tmp) {
    set %youtube.amount $remove($gettok(%tmp,1,47),%youtube.search0,<,$chr(9))
  }
  if (%youtube.search1 isin %tmp) {
    set %youtube.id $remove($gettok(%tmp,8,34),$chr(9),video-url-)
    set %youtube.video http://www.youtube.com/watch?v= $+ %youtube.id
    set %youtube.subject $dll(utf8.dll,convertlocal,$remove($gettok(%tmp,14,34),$chr(9)))
  }
  if (%youtube.search3 isin %tmp) { set %youtube.ratio $gettok(%tmp,4,34) $+ 점 }
  if (%youtube.search4 isin %tmp) { set %youtube.added $dll(utf8.dll,convertlocal,$remove($gettok(%tmp,5,34),</span>,>)) }
  if (%youtube.search5 isin %tmp) { set %youtube.vcount $remove($dll(utf8.dll,convertlocal,$remove($gettok(%tmp,5,34),</span>,>)),조회,수,$chr(32)) }
  if (%youtube.search6 isin %tmp) { set %youtube.user $remove($gettok(%tmp,9,34),</a>,</span>,>) | set %youtube.count 77 } 
  if (%youtube.count == 77) {
    if (!%youtube.ratio) { set %youtube.ratio 평점없음 }
    msg %youtube.chan $chr(91) $+ %youtube.subject $+ $chr(93) – %youtube.video ( $+ 약 %youtube.amount $+ 개의 동영상 검색)
    msg %youtube.chan 설명 : %youtube.describe
    msg %youtube.chan 등록일 : %youtube.added / 평점 : %youtube.ratio / 조회 수 : %youtube.vcount / 등록자 : %youtube.user
    notice %youtube.nick 더 많은 결과를 보시려면 http://www.youtube.com/results?search_type=&search_query= $+ %youtube.url $+ &aq=f 를 참조하십시요.
    sockclose $sockname
    unset %youtube.*
  }
  if (%youtube.search2 isin %tmp) { set %youtube.count 2 }
}

댓글 남기기