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. Two modes are supported: `mode=encode` (default) re-encodes the audio for guaranteed MP3 output, and `mode=remux` only swaps the container without re-encoding when the source already carries an MP3-compatible AAC or MP3 stream — sub-1-second conversion for common YouTube downloads.
Per-job parameters include bitrate (32 kbps to 320 kbps, CBR or VBR), sample rate, channel count (stereo, mono, or downmix), volume normalisation (`norm=ebu`, EBU R128 -14 LUFS), fade-in / fade-out, and per-track ID3 overrides. 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
All three SDK languages show the same conversion: a single POST to /v1/convert with your API key in the X-Api-Key header.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@input.mp4" \
-F "target=mp3"
-F "audioBitrate=192k"import { ConvertIntoMP4 } from "@convertintomp4/sdk";
import fs from "node:fs";
const client = new ConvertIntoMP4({ apiKey: process.env.CIM4_API_KEY });
const job = await client.convert({
file: fs.createReadStream("input.mp4"),
target: "mp3",
});
const result = await client.waitForJob(job.id);
console.log("Output URL:", result.outputUrl);from convertintomp4 import Client
client = Client(api_key="ck_your_api_key")
with open("input.mp4", "rb") as f:
job = client.convert(file=f, target="mp3")
result = client.wait_for_job(job.id)
print("Output URL:", result.output_url)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, podcast distributions). YouTube MP4 downloads often don't, in which case the MP3 has empty tags unless you override them via `metadata.title=` and `metadata.artist=`.
Can I extract MP3 from a YouTube video URL via the API?
Yes. POST a `videoUrl=https://youtube.com/watch?v=…` field and the yt-dlp pipeline downloads, demuxes, and re-encodes in a single job. Subject to YouTube's rate limits and your plan's quota. Educational and personal use only — respect the source platform's TOS.
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. Preserves layout, fonts, tables, and images. pdf2docx + OCR 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.