Skip to main content

List Media

Retrieves all media files from the WordPress media library including images, videos, documents, and other attachments.

Common Properties

  • Name - The custom name of the node.
  • Color - The custom color of the node.
  • Delay Before (sec) - Waits in seconds before executing the node.
  • Delay After (sec) - Waits in seconds after executing node.
  • Continue On Error - Automation will continue regardless of any error. The default value is false.
info

If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.

Inputs

  • Client Id - The client ID from the Connect node (optional if using direct credentials).

Options

  • Site URL - (Optional) WordPress site URL. Use this if you want to authenticate directly without a Connect node.
  • Credentials - (Optional) WordPress username and application password. Use this if you want to authenticate directly without a Connect node.

Output

  • Media List - An array of all media objects from the WordPress media library.

How It Works

The List Media node retrieves all media items from WordPress using the WordPress REST API.

When executed, the node:

  1. Retrieves the authentication (either from Client Id or direct credentials)
  2. Sends a GET request to /wp-json/wp/v2/media endpoint
  3. Returns an array of all media objects with their complete metadata

Media Object Structure

Each media item in the returned Media List contains:

  • id - Unique media ID
  • date - Upload date
  • date_gmt - Upload date in GMT
  • modified - Last modified date
  • slug - URL-friendly identifier
  • status - Usually "inherit" for media
  • type - Always "attachment" for media
  • link - Public URL to the attachment page
  • title - Media title object with rendered HTML
  • author - Uploader user ID
  • caption - Caption object
  • alt_text - Alternative text for images
  • mime_type - MIME type (image/jpeg, application/pdf, etc.)
  • media_type - Category: image, video, audio, or file
  • source_url - Direct URL to the media file
  • media_details - Detailed metadata including:
    • width - Image/video width in pixels
    • height - Image/video height in pixels
    • file - Relative file path
    • filesize - File size in bytes
    • sizes - Different image sizes (thumbnail, medium, large, etc.)
    • image_meta - EXIF data for images

Authentication Methods

Connect → Store Client Id → List Media (use Client Id)

Method 2: Direct Credentials

Provide both Site URL and Credentials directly in the node options.

Requirements

  • A WordPress site with REST API enabled (WordPress 4.7+)
  • No special permissions required for public media
  • Authentication may be required for private or draft attachments

Error Handling

The node will return specific errors in the following cases:

  • Authentication failure (if using credentials)
  • Network connection errors
  • WordPress REST API disabled
  • Invalid response format

Usage Notes

  • Returns all media items in the media library
  • Includes images, videos, documents, and other file types
  • Returns both used and unused media
  • The source_url provides the direct link to download/view the file
  • For images, multiple sizes are available in media_details.sizes
  • Default WordPress pagination may apply (typically 100 items per page)

Example Output

Media List:

[
{
"id": 456,
"date": "2024-01-15T10:30:00",
"slug": "product-image",
"type": "attachment",
"link": "https://yoursite.com/product-image/",
"title": {
"rendered": "Product Image"
},
"author": 1,
"alt_text": "New product showcase",
"mime_type": "image/jpeg",
"media_type": "image",
"source_url": "https://yoursite.com/wp-content/uploads/2024/01/product.jpg",
"media_details": {
"width": 1920,
"height": 1080,
"file": "2024/01/product.jpg",
"filesize": 245678,
"sizes": {
"thumbnail": {
"file": "product-150x150.jpg",
"width": 150,
"height": 150,
"source_url": "https://yoursite.com/wp-content/uploads/2024/01/product-150x150.jpg"
},
"medium": {
"file": "product-300x169.jpg",
"width": 300,
"height": 169,
"source_url": "https://yoursite.com/wp-content/uploads/2024/01/product-300x169.jpg"
}
}
}
},
{
"id": 789,
"date": "2024-01-16T14:20:00",
"slug": "user-manual",
"type": "attachment",
"mime_type": "application/pdf",
"media_type": "file",
"source_url": "https://yoursite.com/wp-content/uploads/2024/01/manual.pdf",
"media_details": {
"filesize": 1024000,
"file": "2024/01/manual.pdf"
}
}
]

Common Use Cases

Media Audit

  • List all media files in the library
  • Check file types and sizes
  • Identify unused media
  • Analyze media storage usage

Media Management

  • Export media metadata
  • Backup media information
  • Generate media inventory reports
  • Track media uploads over time

Media Lookup

  • Find media by filename or slug
  • Get media URLs for embedding
  • Retrieve media IDs for assignment
  • Check if specific media exists

SEO Optimization

  • Audit alt text for images
  • Check missing metadata
  • Identify images without descriptions
  • Review file naming conventions

Media Migration

  • Export media list for migration
  • Compare media across environments
  • Prepare media transfer operations
  • Map media IDs between sites

Filtering and Processing Results

After retrieving the media list, you can process it using JavaScript or Filter nodes:

Filter by Media Type

const media = msg.media_list;

// Get only images
const images = media.filter(item => item.media_type === "image");

// Get only PDFs
const pdfs = media.filter(item => item.mime_type === "application/pdf");

// Get videos
const videos = media.filter(item => item.media_type === "video");

return { images, pdfs, videos };

Find Media by Filename

const media = msg.media_list;
const filename = "product-image";
const found = media.find(item => item.slug === filename);
return { media_item: found };

Get Media Uploaded in Date Range

const media = msg.media_list;
const startDate = new Date("2024-01-01");
const endDate = new Date("2024-01-31");

const filtered = media.filter(item => {
const uploadDate = new Date(item.date);
return uploadDate >= startDate && uploadDate <= endDate;
});

return { january_media: filtered };

Calculate Total Storage Used

const media = msg.media_list;

const totalBytes = media.reduce((sum, item) => {
const size = item.media_details?.filesize || 0;
return sum + size;
}, 0);

const totalMB = (totalBytes / (1024 * 1024)).toFixed(2);

return {
total_files: media.length,
total_storage_mb: totalMB
};

Find Images Missing Alt Text

const media = msg.media_list;

const missingAlt = media.filter(item =>
item.media_type === "image" && !item.alt_text
);

return {
images_without_alt: missingAlt,
count: missingAlt.length
};

Get Different Image Sizes

const media = msg.media_list;
const imageId = 456;

const image = media.find(item => item.id === imageId);
const sizes = image?.media_details?.sizes || {};

const sizeUrls = {
full: image.source_url,
thumbnail: sizes.thumbnail?.source_url,
medium: sizes.medium?.source_url,
large: sizes.large?.source_url
};

return { image_sizes: sizeUrls };

Example Workflows

Media Audit Report

1. List Media
2. Process results:
- Count by media type
- Calculate total storage
- Identify missing metadata
3. Generate CSV report
4. Send email with report

Find and Download Media

1. List Media
2. Filter by criteria (e.g., uploaded in last month)
3. For each media item:
- Download using source_url
- Save to local storage
4. Generate download log

Unused Media Cleanup

1. List Media
2. List Posts (get all post IDs)
3. For each media item:
- Check if used in any post
- If not used: Add to cleanup list
4. Review cleanup list
5. Delete unused media

Media SEO Optimization

1. List Media (filter images)
2. For each image without alt text:
- Generate alt text (AI or manual)
- Update media with alt text
3. Generate optimization report

Best Practices

  • Cache the media list if using it multiple times
  • Filter results to get only needed media types
  • Handle large media libraries with pagination if needed
  • Use source_url for direct file access
  • Check media_type before processing media items
  • Validate URLs before downloading
  • Handle missing metadata gracefully
  • Consider storage limits when analyzing media

Performance Considerations

  • Large media libraries may take longer to retrieve
  • Default WordPress pagination limits results (typically 100)
  • Filter results in your flow to reduce processing time
  • Cache results when making multiple queries
  • For very large libraries, consider using pagination parameters

Media Types

Common media_type values:

  • image - JPG, PNG, GIF, WebP, SVG
  • video - MP4, MOV, AVI, WMV
  • audio - MP3, WAV, OGG
  • file - PDF, DOC, ZIP, and other documents

Common mime_type examples:

  • image/jpeg - JPEG images
  • image/png - PNG images
  • application/pdf - PDF documents
  • video/mp4 - MP4 videos
  • audio/mpeg - MP3 audio

Troubleshooting

Empty Media List returned:

  • Verify media exists in WordPress media library
  • Check WordPress admin panel Media section
  • Confirm REST API is enabled
  • Check authentication if required

Missing media details:

  • Some fields may be null for certain file types
  • Check media_type to determine available fields
  • Non-image files won't have image-specific metadata

URLs not accessible:

  • Verify WordPress site URL is correct
  • Check file permissions on server
  • Ensure files weren't deleted from server

Image Sizes

WordPress generates multiple sizes for images:

  • thumbnail - Usually 150x150px
  • medium - Usually 300x300px
  • medium_large - Usually 768px width
  • large - Usually 1024px width
  • full - Original size (use source_url)

Sizes depend on WordPress theme and settings.

Working with Media URLs

Direct Image URL

const imageUrl = media_item.source_url;
// Use in img tags, downloads, etc.

Thumbnail URL

const thumbUrl = media_item.media_details.sizes.thumbnail?.source_url;

Download Media

1. List Media → Get source_url
2. HTTP Request (GET source_url)
3. Save to file

Integration Examples

Export Media Inventory to CSV

1. List Media
2. Transform to CSV format:
- ID, Filename, Type, Size, Upload Date, URL
3. Write to CSV file
4. Upload to cloud storage or email

Backup Media Metadata

1. List Media
2. Save to JSON file
3. Include all metadata
4. Store for disaster recovery
1. List Media (filter by type: image)
2. Group by upload month
3. Generate HTML gallery
4. Create post with gallery

Broken Media Detection

1. List Media
2. For each media:
- Test source_url accessibility
- Record if 404 or error
3. Generate broken media report
4. Alert administrator