MP4 to MP3 API — Free Tier + Pay-As-You-Go
Extract MP3 audio from MP4 video programmatically. Per-job bitrate and sample rate, ID3 tag injection, fast remux mode.
What it does
The MP4 to MP3 API is a focused endpoint for extracting MP3 audio from MP4, M4V, MOV, and MKV video containers. The pipeline demuxes the audio stream, re-encodes via LAME at the requested bitrate, and writes ID3v2.4 metadata derived from the source's MOV `udta` atoms (title, artist, album, year, track) when present. The audio is always re-encoded — there is no `mode` switch and no remux shortcut for MP3 targets.
Per-job parameters are `bitrate` (32k to 320k), `sampleRate`, `channels` for stereo/mono downmix, `normalize` with `normalizeTarget` for loudness normalisation, `peakNormalize` with `peakTarget`, `fadeIn` / `fadeOut`, and the ID3 overrides `title`, `artist`, `album`, `year`, `track` and `genre`. The endpoint shares the Audio Conversion API's idempotency, webhook, and authentication model — it's a curated alias for one of the highest-volume real-world conversion pairs we see, exposed separately because of its search demand.
Supported formats
Source formats (8)
- mp4
- m4v
- mov
- mkv
- webm
- avi
- flv
- 3gp
Target formats (1)
- mp3
Quick start
Every sample posts the job, then polls /v1/status/{jobId} until it finishes, with your API key in the X-Api-Key header. The parameter names below are the ones the endpoint actually accepts — anything else is dropped rather than rejected.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@input.mp4" \
-F "targetFormat=mp3"
-F "audioBitrate=192k"import { readFileSync } from "node:fs";
import { ConvertIntoMP4Client } from "convertintomp4";
const apiKey = process.env.CIM4_API_KEY;
const client = new ConvertIntoMP4Client({ apiKey });
// Presigned direct-to-R2 upload, then queue the conversion.
const { jobId } = await client.uploadDirect(
readFileSync("input.mp4"),
"input.mp4",
"application/octet-stream",
{ targetFormat: "mp3" },
);
// Poll until the job reaches a terminal state.
let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch(`https://api.convertintomp4.com/v1/status/${jobId}`, {
headers: { "X-Api-Key": apiKey },
}).then((r) => r.json());
} while (job.status !== "completed" && job.status !== "failed");
console.log("Download URL:", job.result?.downloadUrl);import time, requests
from convertintomp4 import Client
api_key = "ck_your_api_key"
client = Client(api_key=api_key)
# Presigned direct-to-R2 upload, then queue the conversion.
with open("input.mp4", "rb") as f:
job = client.upload_direct(
f, "input.mp4", "application/octet-stream", "mp3"
)
# Poll until the job reaches a terminal state.
while True:
status = requests.get(
f"https://api.convertintomp4.com/v1/status/{job['jobId']}",
headers={"X-Api-Key": api_key},
).json()
if status["status"] in ("completed", "failed"):
break
time.sleep(2)
print("Download URL:", status.get("result", {}).get("downloadUrl"))Features
- Two modes: re-encode (default) or remux (faster)
- Bitrates 32 kbps to 320 kbps, CBR or VBR
- ID3v2.4 metadata injection from source
- EBU R128 normalisation
- Mono downmix and channel selection
- Sub-1-second remux for compatible sources
- Identical idempotency model to the Audio API
Pricing
From $9.99/mo (Pro) or $24.99/mo (Business) — or pay-as-you-go on the API plan.
Free tier: 5 conversions/day, 100 MB file size, no API key required (IP-gated). Pro $9.99/mo: 100/day (2,000/month), 2 GB files. Business $24.99/mo: 1,000/day (20,000/month), 10 GB files, GPU encoding, dedicated support.
See full pricing breakdown →Built for production
99.9% uptime SLA
Multi-region failover, transparent status page, 60-second response-time guarantee on Business.
Encryption + auto-delete
TLS 1.2+ in transit, AES-256 at rest. Files deleted after 1h / 24h / 7d depending on plan, or instantly via DELETE endpoint. See the security page.
~7s median latency
Most sub-100 MB jobs complete in 6-9 seconds. Webhook-driven async for heavier workloads; waitForJob for synchronous flows.
Frequently Asked Questions
Why is MP4 to MP3 so popular as a conversion?
MP4 carries video plus audio; MP3 is audio-only and universally playable on portable players, in cars, and across legacy hardware that can't decode AAC or Opus. Stripping the video also reduces file size by 80-95% — useful for podcasts and audiobooks distributed without the visual track.
What bitrate should I pick for MP4 to MP3?
192 kbps VBR is the sweet spot — transparent for most listeners on consumer hardware. Use 320 kbps CBR for archival, 128 kbps for voice-only content (podcasts, audiobooks), and 64-96 kbps for telephony-quality applications.
Will the converted MP3 keep the title and artist from the video?
Yes if the MP4 carries `udta` metadata atoms (common in iTunes-style MP4s, music downloads and podcast distributions). YouTube MP4 downloads often do not, in which case the MP3 has empty tags unless you set them yourself with the `title`, `artist`, `album`, `year`, `track` and `genre` fields on the request.
Can I extract MP3 from a YouTube video URL via the API?
Not through this endpoint — `POST /v1/convert` has no `videoUrl` field. Use `POST /v1/media/download` for the yt-dlp path, or `POST /v1/import/url` with a `url` and `targetFormat` when the source is a plain file URL. Both are subject to your plan's quota. Educational and personal use only — respect the source platform's terms.
How does remux mode differ from encode mode?
Remux only changes the container, leaving the audio stream untouched — completes in under a second but only works if the source has an MP3-compatible stream. Encode mode re-encodes to guaranteed MP3 at your chosen bitrate; takes 1-5 seconds for typical inputs. Default is encode for predictability.
Related APIs
- PDF to JPG APIRender PDF pages to JPG images programmatically. Per-page DPI, page-range selection, batch ZIP output, ImageMagick + pdftoppm pipeline.
- JPG to PNG APIConvert JPG to PNG with optional transparency, lossless compression, and EXIF preservation via API. Sharp-backed.
- MP4 to GIF APIConvert MP4 video to animated GIF programmatically. Per-job width, fps, palette mode, and start/end trim controls.
- PDF to DOCX APIConvert PDF to editable Word DOCX via API. pdf2docx layout reconstruction, automatic OCR pre-pass on scans, LibreOffice fallback.
- DOCX to PDF APIConvert Word DOCX to PDF programmatically. LibreOffice-rendered with font fallback, headers/footers, and PDF/A archival output.
- HEIC to JPG APIConvert iPhone HEIC and HEIF photos to JPG via API. EXIF rotation, ICC profile, Live Photo frame selection.
Or browse the full catalogue of 23 API products →
Get an API key
Start integrating the MP4 to MP3 API in five minutes. Read the docs, grab a key, and ship your first conversion before the trial coffee cools.