API Documentation

Integrate our media downloader into your applications

Extract videos, images, and audio from YouTube, Instagram, and TikTok using our RESTful API

Quick Start

Base URL

https://picoshot.net/api/downloader

HTTP Method

POST/api/downloader

Features

Auto platform detection
Multiple quality options
Standardized JSON responses
No authentication required

Supported Platforms

YouTube

Extract videos, images, and audio from YouTube posts and content.

https://youtube.com/watch?v=dQw4w9WgXcQ

Instagram

Extract videos, images, and audio from Instagram posts and content.

https://instagram.com/p/ABC123/

TikTok

Extract videos, images, and audio from TikTok posts and content.

https://tiktok.com/@user/video/1234567890

Request Parameters

ParameterTypeRequiredDescription
urlstringYesThe URL of the content to download (YouTube, Instagram, or TikTok)
platformstringNoPlatform identifier: "youtube", "instagram", or "tiktok". Auto-detected if not provided.

Response Format

Success Response

{
  "success": true,
  "platform": "youtube",
  "url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
  "data": {
    "title": "Rick Astley - Never Gonna Give You Up",
    "author": "Rick Astley",
    "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hq2.jpg",
    "media": [
      {
        "type": "video",
        "url": "https://download-url...",
        "quality": "hd"
      },
      {
        "type": "audio",
        "url": "https://audio-url...",
        "quality": "audio_only"
      }
    ]
  }
}

Error Response

{
  "success": false,
  "platform": "youtube",
  "url": "https://invalid-url",
  "error": "Content not available or failed to process. Please check the URL and try again."
}

Code Examples

JavaScript Example
// Using fetch API
const response = await fetch('https://picoshot.net/api/downloader', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://youtube.com/watch?v=dQw4w9WgXcQ',
    platform: 'youtube' // optional
  })
});

const data = await response.json();

if (data.success) {
  console.log('Title:', data.data.title);
  console.log('Media files:', data.data.media);
  
  // Download first media file
  const mediaUrl = data.data.media[0].url;
  window.open(mediaUrl, '_blank');
} else {
  console.error('Error:', data.error);
}

Error Handling

HTTP StatusError TypeDescription
400Bad RequestInvalid URL format or missing required parameters
422Processing ErrorContent not available, private, or failed to process
500Server ErrorService temporarily unavailable

Rate Limiting & Best Practices

Rate Limits

No authentication required
Fair usage policy applies
Please cache responses when possible

Best Practices

Validate URLs client-side first
Handle errors gracefully
Implement retry logic with backoff
Cache media URLs (they expire)