Page 1 of 1

MNCAST 비디오 받는 그리스몽키 스크립트

Posted: 2007 02 08 14:46 31
by sixmen
확장을 만들 능력은 아직 없고, 그리스몽키 설치한 김에 한번 만들어봤습니다.

Code: Select all

// ==UserScript==
// @name           MNCAST Video Downloader
// @namespace      http://sixmen.pe.kr/
// @description    Download Video from MNCAST
// @include        http://*.mncast.com/*
// ==/UserScript==

var embeds = document.getElementsByTagName("embed");
for(var i=0;i<embeds>0)
		{
			var movieurl = "http://" + entries[0].textContent + ".flv";
			window.open(movieurl, null);
		}
	}
	GM_xmlhttpRequest(reqobj);
}
일단 주소까지 알아냈는데, 다른 video downloader 확장 처럼, 메뉴나 툴바에 다운로드를 추가하고 싶은데, 아직 능력이 안 되서 다른 창을 띄우게 해봤습니다.
그마저도 다운로드 창이 뜨는게 아니고 그냥 새 창에 바이너리 데이터가 나와버리네요.

이 부분을 어떻게 하면 좋을까요?

음..

Posted: 2007 02 08 14:48 59
by sixmen
코드가 다 안 올라가네요..

Code: Select all

// ==UserScript==
// @name           MNCAST Video Downloader
// @namespace      http://sixmen.pe.kr/
// @description    Download Video from MNCAST
// @include        http://*.mncast.com/*
// ==/UserScript==

var embeds = document.getElementsByTagName("embed");
for(var i=0;i<embeds.length;i++)
{
	if(embeds.item(i).name=='MNC_HMOVIE')
	{
		var url = embeds[i].src;
		var match = url.match(/movieID=(\d+)/);
		if(match)
		{
			var infourl = 'http://www.mncast.com/_MovieInfo_/_MovieInfoXML_Tag_.asp?movieID='+match[1]+'&loginPNum=-1&player=0';
		}
	}
}

코드 나머지

Posted: 2007 02 08 14:49 54
by sixmen
나머지

Code: Select all

if(infourl)
{
	var reqobj = new Object();
	reqobj.method = 'GET';
	reqobj.url = infourl;
	reqobj.onload = function(responseDetails)
	{
		var parser = new DOMParser();
		var dom = parser.parseFromString(responseDetails.responseText, "application/xml");
		var entries = dom.getElementsByTagName('url');
		if(entries && entries.length>0)
		{
			var movieurl = "http://" + entries[0].textContent + ".flv";
			window.open(movieurl, null);
		}
	}
	GM_xmlhttpRequest(reqobj);
}

제가 했었던 방법은 ...

Posted: 2007 02 26 01:43 23
by jsmoon
GreaseMonkey쪽 스크립트에서 FireFox에서 정의된 함수를 사용할 수 있을지 여부는 잘 모르겠지만, 저 같은 경우 신비로 다운로더를 만들적에 기존에 있던 함수인 saveURL을 사용하였습니다.

function saveURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache, aSkipPrompt, aReferrer)

위의 함수를 아래와 같이 호출 하면

saveURL(URL, FILENAME, null, false);

다운로드 창이 뜨게 됩니다.

GM에서는 못 씁니다.

Posted: 2007 02 26 12:54 22
by 화성
그리스몽키는 스크립트를 샌드박스에서 실행하기 때문에, 그리스몽키가 제공하는 함수 말고는 웹페이지 밖의 것들을 건드릴 수 없습니다.