This article provides technical documentation for developers who want to integrate with the Infinite Uploads Video Library using the PHP helper function infinite_uploads_get_videos().
Use this function to retrieve cloud-hosted video objects and incorporate them into your plugin, theme, or custom workflow.
infinite_uploads_get_videos() retrieves video records from the Infinite Uploads cloud library.
It supports pagination, searching, and ordering of results.
This allows developers to:
- Display video lists or galleries
- Fetch and embed videos
- Build custom UI pickers for selecting videos
- Integrate Infinite Uploads video data into plugins or extensions
Function Name
infinite_uploads_get_videos
Parameters
$params (array, optional) — An associative array controlling which videos are returned.
| Parameter | Type | Default | Description |
|---|---|---|---|
page | int | 1 | Page number to fetch |
per_page | int | 40 | Number of results per page |
order_by | string | 'dateCreated' | Field to sort results by |
search | string | '' | Search term applied to video title/description |
Important: The API does not support filtering by video_id. It always returns videos stored in the site’s existing Infinite Uploads library.
Return Value
The function returns an associative array matching the Infinite Uploads API response.
[
'success' => true,
'data' => [
'totalItems' => int,
'currentPage' => int,
'itemsPerPage' => int,
'items' => [ ... array of videos ... ]
]
]
If the request fails, the function may throw an Exception.
Video Object Fields
| Property | Description |
|---|---|
videoLibraryId | Unique video ID |
guid | Internal unique identifier |
title | Video title |
description | Description text (may be null) |
dateUploaded | Upload timestamp |
views | Total view count |
isPublic | Whether the video is public |
length | Duration in seconds |
status | Processing/encoding status |
framerate | Framerate value |
width / height | Video dimensions |
availableResolutions | Comma-separated list of resolutions |
thumbnailFileName | Thumbnail filename |
thumbnailBlurhash | Blurhash string |
encodeProgress | Encoding progress (0–100%) |
storageSize | File size in bytes |
captions | Array of caption tracks |
category | Category string |
Note:
There is no url or thumbnail_url returned at this API layer.
Your integration may need to generate or request those separately.
Example API Response
{
"success": true,
"data": {
"totalItems": 1,
"currentPage": 1,
"itemsPerPage": 40,
"items": [
{
"videoLibraryId": 513608,
"guid": "1ac3e3e4-81b7-46a8-8d87-694cbfef4a7e",
"title": "Scallions",
"description": null,
"dateUploaded": "2025-10-16T17:23:07.355",
"views": 4,
"isPublic": false,
"length": 27,
"status": 4,
"framerate": 29.97,
"rotation": 0,
"width": 1920,
"height": 1080,
"availableResolutions": "360p,480p,720p,240p,1080p",
"outputCodecs": "x264",
"thumbnailCount": 14,
"encodeProgress": 100,
"storageSize": 66122960,
"captions": [],
"hasMP4Fallback": false,
"collectionId": "",
"thumbnailFileName": "thumbnail.jpg",
"thumbnailBlurhash": "W9HV8[xsHbtQVba2NNuKSwV[...]",
"averageWatchTime": 23,
"totalWatchTime": 93,
"category": "other",
"chapters": [],
"moments": [],
"metaTags": [],
"transcodingMessages": [],
"jitEncodingEnabled": false,
"smartGenerateStatus": null,
"hasOriginal": true,
"originalHash": "12B96F44E9..."
}
]
}
}
Usage Example
$params = [
'page' => 1,
'per_page' => 20,
'order_by' => 'dateUploaded',
'search' => '',
];
$response = infinite_uploads_get_videos( $params );
if ( $response['success'] ) {
foreach ( $response['data']['items'] as $video ) {
echo '<h3>' . esc_html( $video['title'] ) . '</h3>';
echo '<p>Views: ' . intval( $video['views'] ) . '</p>';
}
}
Best Practices
- Always check
function_exists()before calling. - Use pagination (
page,itemsPerPage) for large libraries. - Use
searchfor admin dropdowns or video pickers. - Cache results using transients to reduce API calls.
- Escape and sanitize all output.
- Handle exceptions and API failure states gracefully.
Requirements
- A version of Infinite Uploads that includes the video fetch endpoint
- PHP 7.4+ recommended
- Infinite Uploads must be connected to the IU cloud server