Overview
Dislify is a media-compression platform for optimizing videos, images, and audio files for easier storage, delivery, and sharing. Use the dashboard for manual compression or integrate Dislify into your application through the developer API.
01
Introduction
Introduction
Dislify is a media-compression platform for optimizing videos, images, and audio files for easier storage, delivery, and sharing.
You can use Dislify directly through the web application or integrate its compression tools into another product through the developer API.
Dislify handles the complete processing workflow:
- Upload a media file.
- Select a compression preset.
- Track the job while it is processed.
- Download the optimized result.
- Receive completion events through webhooks when using the API.
02
What you can compress
Dislify currently supports three primary media categories.
Video
Video files are converted into widely supported MP4 outputs using H.264 video and AAC audio.
The processing worker can adjust:
Video bitrate
Audio bitrate
Resolution
Encoding preset
Pixel format
Fast-start metadata
These settings help produce files that are smaller and easier to play across browsers, mobile devices, and messaging platforms.
Images
Image files are optimized and exported as JPEG files.
During processing, Dislify can reduce image dimensions and encoding quality to lower the final file size while keeping the image visually usable.
Audio
Audio files are converted into optimized MP3 outputs.
Dislify adjusts the audio bitrate based on the selected compression preset, making the result more suitable for sharing, previews, voice recordings, and general playback.
03
Compression presets
Every compression job uses one of three presets.
Discord Safe
Discord Safe is designed for files that need to fit within a defined upload-size target.
Dislify calculates an appropriate output target and progressively retries stronger compression settings when necessary.
Use this preset for:
Gameplay clips
Screen recordings
Memes
Short videos
Audio clips
Files intended for messaging platforms
Balanced
Balanced reduces file size while preserving more of the original quality.
Use this preset when you want meaningful compression without applying the strongest available settings.
It is suitable for:
Website media
Product previews
Portfolio content
General file sharing
Internal team uploads
Maximum Compression
Maximum Compression prioritizes the smallest practical output.
It applies more aggressive bitrate and quality targets than the other presets.
Use it when:
File size matters more than visual fidelity
Upload limits are strict
Network bandwidth is limited
The media is intended only as a preview
04
How processing works
Dislify uses an asynchronous processing architecture.
When a file is submitted, the application creates a compression job and sends it to a background worker. The request does not remain open while FFmpeg processes the media.
The general workflow is:
This architecture allows long-running compression jobs to continue independently from the web application.
05
Job statuses
A compression job can have one of the following statuses.
Queued
The job has been accepted and is waiting for an available worker.
Processing
The worker is currently compressing the file.
The dashboard may display progress updates while processing continues.
Completed
The optimized output was created successfully and uploaded to storage.
The job now includes:
Output filename
Output size
Reduction percentage
Download route
Expiration time
Failed
The job could not be completed.
A job may fail because:
The input file is missing or empty
The media type is unsupported
FFmpeg could not decode the file
The selected target could not be reached
The generated output was not smaller than the original
The worker could not access storage or notify the application
The recorded error message is available in the dashboard and API response.
06
Private file storage
Uploaded files and compressed outputs are stored in a private Cloudflare R2 bucket.
The bucket is not publicly exposed.
When an authorized user requests a download, Dislify:
- Verifies access to the compression job.
- Confirms that the stored output exists.
- Creates a temporary signed download URL.
- Redirects the browser to the file.
Signed storage URLs expire after a short period and should not be stored permanently.
Applications should store the Dislify job ID or download route instead.
07
Web application
The Dislify dashboard provides a visual interface for managing compression activity.
From the dashboard, users can:
Upload media
Select compression presets
Track processing progress
Browse compression history
View original and output sizes
Download completed files
Retry failed jobs
Recompress previous files
Review usage
Manage subscriptions
Create API keys
Configure webhooks
The dashboard is the easiest way to test Dislify before integrating the API.
08
Developer API
The developer API allows external applications to create and monitor compression jobs programmatically.
Typical integrations include:
Discord bots
Community platforms
Content-management systems
Creator tools
Upload portals
Media-processing workflows
Internal automation systems
API access requires a valid API key with the appropriate scopes.
Example request:
A successful request creates a job and returns its identifier.
The client can then retrieve the latest job status using the returned ID.
09
API-key scopes
API keys use scopes to limit what each key can access.
Available scopes include:
Only grant the scopes required by the integration.
API keys should never be exposed in browser-side code or committed to source control.
10
Webhooks
Webhooks allow Dislify to notify another application when an event occurs.
Supported events include:
Webhook payloads are signed using a secret associated with the endpoint.
Your server should verify the signature before trusting or processing the payload.
A webhook integration is preferable to repeatedly polling job status when processing many files.
11
Usage and quotas
Usage limits depend on the account plan.
Dislify records API activity and compression usage so users can review consumption from the developer dashboard.
When an account reaches its configured quota, additional API requests may be rejected until the usage period resets or the plan is upgraded.
Applications should handle quota errors and display a useful message to the user.
12
File expiration
Compressed outputs are not intended to remain in storage permanently.
Every job includes an expiration time. After that time, the file may be removed during automated cleanup.
Download or move important outputs before they expire.
Dislify should be treated as a processing and delivery service—not as permanent file storage.
13
Authentication and security
The Dislify application uses authenticated sessions for dashboard access and scoped API credentials for integrations.
Security controls include:
Private object storage
Temporary signed URLs
Hashed API keys
Scoped permissions
Signed webhook payloads
Internal worker secrets
Upload-size limits
File-type validation
Account usage limits
Sensitive credentials must remain server-side.
Never expose the following values publicly:
14
Next steps
Continue with the following documentation:
Quickstart — Compress your first file through the dashboard.
Authentication — Create and manage API credentials.
Create a job — Submit a file through the developer API.
Retrieve a job — Check status and access completed output.
Webhooks — Receive signed job events.
Errors — Handle validation, processing, and quota failures.
