c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

twaud.io用Craving Explorer Site Script

何となく。
楽曲ページ丈でなく、twaud.io上でのユーザーのプロフィールページからの一括ダウンロードも可能(最大20曲)
でも此んなん使わず、Podcast使った方が、楽ですよ。


download: http://c4se.sakura.ne.jp/widgets/craving/twaudio.site.js
(インストール方は、[還弦主義8760時間用Craving Explorer Site Script - c4se記:さっちゃんですよ☆ http://d.hatena.ne.jp/Kureduki_Maari/20101110/1289352352 ]を参照。Craving Explorerにて、上記site.jsにアクセスする丈で良い。)

// ==SiteScript==
// @siteName twaud.io
// @siteUrl http://twaud.io/
// @author ne_sachirou
// @authorUrl http://c4se.sakura.ne.jp/profile/ne.html
// @scriptUrl http://c4se.sakura.ne.jp/widgets/craving/
// @description twaud.io mp3ダウンロード
// @date 2010/11/11
// @version 1.0.0.0
// @license MIT License
// ==/SiteScript==


function isSiteUrl(url) { // @param String: url
                          // @return Boolean:
    return (/^http:\/\/twaud.io\/(?:users\/)?[A-Za-z0-9_]+$/).test(url);
}


function decodeCharacterReference(string) { // @param String: String includes Numeric Character Reference
                                            // @return String:
    return string.replace(/&#(\d+);/g, function(r, numeric){
        return String.fromCharCode(numeric - 0);
    });
}


function getVideoDetail(url) {  // @param String: url
                                // @retuen Hash: { videoTitle〜: Download Video title
                                //                 videoUrl〜:   Download Video url  }
    var REGEX_MESSAGE = /<message>([^<]+)<\/message>/g,
        REGEX_AUDIO_URL = /<audio_url>([^<]+)<\/audio_url>/g;
    var xhr = new ActiveXObject('Msxml2.XMLHTTP'),
        response, matchresult, i, rvalue = {};
    
    try{
        // 楽曲の視聴ページであれば、其の楽曲のダウンロード情報を返す。
        // ユーザーの楽曲リストページであれば、其のユーザーの最大20曲分の、楽曲ダウンロード情報リストを返す。
        if (/^http:\/\/twaud.io\/[A-Za-z0-9]+$/.test(url)) {
            xhr.open('GET', 'https://twaud.io/api/v1/' + url.match(/^http:\/\/twaud.io\/([A-Za-z0-9]+)/)[1] + '.xml', false);
            xhr.send();
            response = xhr.responseText;
            rvalue = {
                videoTitle0: decodeCharacterReference(REGEX_MESSAGE.exec(response)[1]),
                videoUrl0: REGEX_AUDIO_URL.exec(response)[1]
            };
        } else {
            xhr.open('GET', 'https://twaud.io/api/v1/users/' + url.match(/^http:\/\/twaud.io\/users\/([A-Za-z0-9_]+)/)[1] + '.xml', false);
            xhr.send();
            response = xhr.responseText;
            i = 0;
            while (matchresult = REGEX_MESSAGE.exec(response)) {
                rvalue['videoTitle' + i] = decodeCharacterReference(matchresult[1]);
                rvalue['videoUrl' + i] = REGEX_AUDIO_URL.exec(response)[1];
                ++i;
            }
        }
    } catch(e) {
        rvalue = null;
    }
    return rvalue;
}

関連

twaud.io - Audio for Twitter http://twaud.io/api
twaud.ioってAPI有ったんですね。アップロードも出来るのか。


還弦主義8760時間用Craving Explorer Site Script - c4se記:さっちゃんですよ☆ http://d.hatena.ne.jp/Kureduki_Maari/20101110/1289352352
こっそり1.0.0.2にアップデート。[ツール(T)]->[Site Script の管理(S)]からの自動アップデート可)


#Opera からCraving Explorer連携 - c4se記:さっちゃんですよ☆ http://d.hatena.ne.jp/Kureduki_Maari/20101111/1289479697