defmodule Extube.Redtube do @moduledoc """ Redtube API Wrapper. For more information on the hubtraffic Redtube API, see here """ @doc """ Queries the hubtraffic API to search for videos given a map of parameters. Parameters right now include the following: `:category` (Optional) `:page` (Optional) Integer / default 1 `:search` (Optional) String / search query string `:period` (Optional - works only when 'ordering' parameter is used!) If set, the returned XML output will deliver videos from a period, based on the selected value. Possible values are: weekly, monthly, alltime. `:thumbsize` (Optional) If set, provides additional thumbnails in different formats. Possible values are: medium, small, big, all, medium1, medium2. """ def search_videos(params \\ %{thumbsize: "medium"}) do base_url = "https://api.redtube.com/?data=redtube.Videos.searchVideos&" Extube.handle_hubtraffic_call(base_url, params) end @doc """ Retrieves additional information about specific video by id parameter. ## Parameters: `video_id` (Required) Integer `thumbsize` (Optional) If set, provides additional thumbnails in different formats. Possible values are small,medium,large,small_hd,medium_hd,large_hd """ def get_video_by_id(video_id, thumbsize \\ "medium") do base = "https://api.redtube.com/?data=redtube.Videos.getVideoById&" Extube.handle_hubtraffic_call(base, %{ video_id: video_id, thumbsize: thumbsize }) end @doc """ Retrieves embed code for specific video by video_id parameter, which is useful to automatically embed videos. ## Parameters: `video_id` (Required) Integer """ def get_video_embed_code(video_id) do base = "https://api.redtube.com/?data=redtube.Videos.getVideoEmbedCode&" Extube.handle_hubtraffic_call(base, %{ video_id: video_id }) end @doc """ Retrieves all deleted videos. ## Parameters: `page` (Required) Integer """ def get_deleted_videos(page) do base = "https://api.redtube.com/?data=redtube.Videos.getDeletedVideos&" Extube.handle_hubtraffic_call(base, %{ page: page }) end @doc """ Retrieves state of a specific video specified by is_video_active parameter, which is useful in order to keep your embedded videos up to date. ## Parameters: `video_id` (Required) Integer """ def is_video_active(video_id) do base = "https://api.redtube.com/?data=redtube.Videos.isVideoActive&" Extube.handle_hubtraffic_call(base, %{ video_id: video_id }) end @doc """ Retrieves all available categories. """ def get_categories_list do base = "https://api.redtube.com/?data=redtube.Categories.getCategoriesList&" Extube.handle_hubtraffic_call(base, %{}) end @doc """ Retrieves all tags available. ## Parameters: `list` a-z for tag starting letter, 0 for other. """ def get_tags_list(starts_with) do base = "https://api.redtube.com/?data=redtube.Tags.getTagList&" Extube.handle_hubtraffic_call(base, %{ list: starts_with }) end end