Convert MP4 to MP3
Turn MP4, the most widely supported video container on the web and devices, into MP3, the universally supported compressed audio format. FileChanger runs the video conversion in one call, no local tooling to install.
In the browser
Upload a file and download the result, no pipeline required. Open the converter.
One API call
POST the file with from=mp4 and to=mp3, get the converted bytes back. Jump to the code.
From an agent
FileChanger ships an MCP server, so agents can run this conversion themselves. See the docs for setup.
Uploading something you care about? How to convert files safely explains what to check before you trust any converter, and Security and data handling describes exactly what we store and for how long.
Convert MP4 to MP3 in code
The same call from any language: POST the file to /api/convert, the response body is the converted file.
curl -X POST https://filechanger.io/api/convert \
-H "X-Api-Key: fc_your_api_key_here" \
-F "file=@input.mp4" \
-F "from=mp4" \
-F "to=mp3" \
-o output.mp3import requests
with open("input.mp4", "rb") as f:
response = requests.post(
"https://filechanger.io/api/convert",
headers={"X-Api-Key": "fc_your_api_key_here"},
files={"file": f},
data={"from": "mp4", "to": "mp3"},
)
response.raise_for_status()
with open("output.mp3", "wb") as out:
out.write(response.content)const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("from", "mp4");
formData.append("to", "mp3");
const response = await fetch("https://filechanger.io/api/convert", {
method: "POST",
headers: { "X-Api-Key": "fc_your_api_key_here" },
body: formData,
});
const output = await response.blob();import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse.BodyHandlers;
import java.nio.file.Path;
String boundary = "----FormBoundary" + System.currentTimeMillis();
byte[] fileBytes = java.nio.file.Files.readAllBytes(Path.of("input.mp4"));
String body = "--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"file\"; filename=\"input.mp4\"\r\n"
+ "Content-Type: application/octet-stream\r\n\r\n"
+ new String(fileBytes) + "\r\n"
+ "--" + boundary + "\r\nContent-Disposition: form-data; name=\"from\"\r\n\r\nmp4\r\n"
+ "--" + boundary + "\r\nContent-Disposition: form-data; name=\"to\"\r\n\r\nmp3\r\n"
+ "--" + boundary + "--";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://filechanger.io/api/convert"))
.header("X-Api-Key", "fc_your_api_key_here")
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.POST(BodyPublishers.ofString(body))
.build();
HttpResponse<byte[]> response = client.send(
request, BodyHandlers.ofByteArray());
java.nio.file.Files.write(Path.of("output.mp3"), response.body());import Network.HTTP.Client
import Network.HTTP.Client.MultipartFormData
import qualified Data.ByteString.Lazy as BL
main :: IO ()
main = do
manager <- newManager defaultManagerSettings
initialReq <- parseRequest "POST https://filechanger.io/api/convert"
let req = initialReq
{ requestHeaders = [("X-Api-Key", "fc_your_api_key_here")] }
request <- formDataBody
[ partFileSource "file" "input.mp4"
, partBS "from" "mp4"
, partBS "to" "mp3"
] req
response <- httpLbs request manager
BL.writeFile "output.mp3" (responseBody response)About MP4
MP4 is the video container the world settled on: H.264 video alongside AAC audio in an MPEG-4 file, played by every phone, browser, smart TV, and editing suite without extra codecs. Cameras, phones, and screen recorders write it by default, which makes it both the usual starting point for a conversion and the safest thing to hand someone else.
About MP3
MP3 (MPEG-1 Audio Layer III) is the format that made digital music portable and remains the most universally playable audio there is. Its psychoacoustic lossy compression throws away the detail the ear cannot hear to shrink files dramatically, and every phone, browser, car stereo, and media player of the last twenty-five years can play the result.
Frequently asked questions
How do I convert MP4 to MP3?
Upload your file in the browser converter and pick MP3 as the target, or POST it to /api/convert with from=mp4 and to=mp3. The response body is the converted file.
Is converting MP4 to MP3 free?
Yes. Every account gets 200 MB of conversions free, metered on input size. After that you pay only for what you convert, from $0.10 per GB, with no monthly fee. See pricing for the paid tiers.
Is there an API for MP4 to MP3 conversion?
Yes, this whole conversion is one POST to /api/convert (the code examples above show it in five languages), plus an MCP server so AI agents can run it directly.
Does converting MP4 to MP3 keep the video?
No. MP3 holds audio and nothing else, so the video track is dropped and only the sound survives. That is the whole point of the conversion: it is how you lift the audio out of a lecture, interview, or screen recording and end up with a file a fraction of the size.
Does extracting MP3 audio from an MP4 lose quality?
A little. MP4 audio is normally AAC and MP3 is a different lossy codec, so the audio is re-encoded rather than copied across. The result is a second-generation lossy file, which is fine for speech and ordinary listening, but keep the original MP4 if you need a master to work from.