All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elypia.elypiai.dailymotion.Dailymotion Maven / Gradle / Ivy

There is a newer version: 1.0.6
Show newest version
package com.elypia.elypiai.dailymotion;

import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.async.Callback;
import com.mashape.unirest.http.exceptions.UnirestException;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;

public class Dailymotion {

	public static final String GET_VIDEO = "https://api.dailymotion.com/video/{id}";
	public static final String PLAYLIST_VIDEOS = "https://api.dailymotion.com/playlist/{id}/videos";

	public void getVideo(String videoId, Consumer success, Consumer failure) {
		Unirest.get(GET_VIDEO).routeParam("id", videoId).asJsonAsync(new Callback() {

			@Override
			public void completed(HttpResponse response) {
				success.accept(new DailymotionVideo(response.getBody().getObject()));
			}

			@Override
			public void failed(UnirestException e) {
				failure.accept(e);
			}

			@Override
			public void cancelled() {

			}
		});
	}

	public void getVideosFromPlaylist(String playlistId, Consumer> success, Consumer failure) {
		List videos = new ArrayList<>();

		Map queryParams = new HashMap<>();
		queryParams.put("limit", 100);

		int page = 1;
		queryParams.put("page", page++);

		Unirest.get(PLAYLIST_VIDEOS).routeParam("id", playlistId).queryString(queryParams).asJsonAsync(new Callback() {

			@Override
			public void completed(HttpResponse response) {
				JSONObject object = response.getBody().getObject();

				JSONArray array = object.getJSONArray("list");

				for (int i = 0; i < array.length(); i++)
					videos.add(new DailymotionVideo(array.getJSONObject(i)));

				success.accept(videos);
			}

			@Override
			public void failed(UnirestException e) {
				failure.accept(e);
			}

			@Override
			public void cancelled() {

			}
		});
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy