API Tumblr: Get Urls's from posts videos

by JuanMa Garrido

HTML

<p>Fill your <strong>Tumblr URL</strong> and <strong>API Key</strong> and  click the button to get the URL's of your tumblr videos</p>

<fiedlset>
    <ul>
        <li>
            <label>
                Your Tumblr site:
                <input value="juanmaguitar.tumblr.com" id="tumblr_site"></input>
            </label>
        </li>
        <li>
            <label>
                Your API key:
                <input id="api_key" value="DwKF7vOtXNI5s5TG1OMHr2dQ0WoJqKJXxMWLjetDuYbtbCW1RT"></input>
            </label>
        </li>
    </ul>
    <button>get videos from tumblr</button>
</fiedlset>

<ol></ol>

JavaScript

var video_posts_url = [],
    total_posts = 0,
    counter = 0,
    offset = 0;

function handleTumblrData (data) {

    total_posts = data.response.total_posts;
    
    /*
    console.log (arguments);
    console.log ("offset: %n", offset);
    console.log ( "$.ajax : %o", data );
    console.log ( data.response.posts.length );
    */
    
    $.each(data.response.posts, function(i, item) {
        
        console.log ("processing %n of %n (item %n)", ++counter, total_posts, item.id )
        link_result = $("<a>", { href: item.permalink_url } ).html(item.permalink_url);
        $("<li>").html(link_result).appendTo("ol");
                      
        video_posts_url.push (item.permalink_url);
    });
    
    if (data.response.posts.length == 20) {
        offset += 20;
        loadPosts(offset);
    }
    else {
        console.log ( video_posts_url );
    }
    
}

function loadPosts(offset) {
    
    var site = $("#tumblr_site").val(),
        tumblr_api_key = $("#api_key").val(); 

    $.ajax({
        url: "http://api.tumblr.com/v2/blog/" + site + "/posts",
        data: {
            api_key: tumblr_api_key,
            type: 'video', 
            offset: offset
        },
        dataType: "jsonp",
        success: handleTumblrData
    });
      
}

$("button").bind("click", function () {

    if  ( !$("#tumblr_site").val() || !$("#api_key").val() ) {
        console.error("please fill BOTH fields");
    }
    else {
        loadPosts( offset );
    }
});