Thông tin file audio & video API

Đọc thời lượng, bitrate, codec, độ phân giải, fps, tần số mẫu, số kênh, tag và ảnh bìa của file MP3, M4A, FLAC, OGG, WAV, MP4, MOV, WebM, MKV.

GETPOSThttps://apibox.io.vn/v1/media-metadata

Tải file lên qua multipart file (hoặc body thô / file_base64), hoặc truyền một url công khai: chỉ max_mb MB đầu (mặc định 8, tối đa 25) được tải về, đủ cho hầu hết các file. Định dạng: MP3 (ID3v1 / v2), AAC (ADTS), M4A / MP4 / MOV (ISO BMFF), FLAC, Ogg Vorbis / Opus, WAV, AIFF, WebM / MKV (Matroska), WMA / ASF…, đọc bằng thư viện music-metadata.

Kết quả có container, codec chính, duration (giây và duration_hms), bitrate, sample_rate, channels, bits_per_sample, lossless, và với video là width, height, fps, video_codec (H.264, H.265 / HEVC, VP9, AV1…). tracks liệt kê từng track audio / video / phụ đề; tags gồm tên bài, nghệ sĩ, album, năm, thể loại, số track, ghi chú và phần mềm mã hoá.

cover mô tả ảnh bìa nhúng trong file; khi cover=true sẽ kèm thumbnail JPEG (tối đa 300 px) dạng data URL. Khi URL chỉ được đọc một phần, thời lượng và bitrate có thể là ước tính và file MP4 có chỉ mục ở cuối có thể thiếu chi tiết (kết quả sẽ ghi chú).

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilekhôngFile audio hoặc video (multipart, body thô hoặc file_base64), tối đa theo giới hạn file của gói.
urlbody|querystringkhôngURL công khai của file thay cho việc tải lên.
max_mbbody|querynumberkhông8Số MB đọc từ URL (1-25).
coverbody|querybooleankhôngfalseKèm ảnh thu nhỏ JPEG của ảnh bìa nhúng.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/media-metadata" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@./my-file"

Kết quả trả về

{
  "file": {
    "name": "bai-giang.mp4",
    "bytes": 31997,
    "kind": "file"
  },
  "container": "isom/iso2/avc1/mp41",
  "codec": "MPEG-4/AAC",
  "codec_profile": null,
  "duration": 2.023,
  "duration_hms": "00:02.023",
  "bitrate": 127988,
  "overall_bitrate": 127988,
  "sample_rate": 44100,
  "channels": 1,
  "bits_per_sample": 16,
  "lossless": false,
  "has_audio": true,
  "has_video": true,
  "width": 320,
  "height": 240,
  "fps": 25,
  "video_codec": "H.264 / AVC",
  "tracks": [
    {
      "id": 1,
      "type": "video",
      "codec": "H.264 / AVC",
      "codec_id": "avc1",
      "language": null,
      "duration": 2,
      "bitrate": 45020,
      "width": 320,
      "height": 240,
      "display_width": 320,
      "display_height": 240,
      "fps": 25,
      "interlaced": null
    },
    {
      "id": 2,
      "type": "audio",
      "codec": "MPEG-4/AAC",
      "codec_id": "mp4a",
      "language": null,
      "duration": 2.023,
      "bitrate": 69699,
      "sample_rate": 44100,
      "channels": 1,
      "bit_depth": 16
    }
  ],
  "tags": {
    "title": "MP4 test",
    "encodedby": "Lavf62.3.100"
  },
  "tag_types": [
    "iTunes"
  ],
  "cover": null
}

Ứng dụng

  • Kiểm tra video bài giảng tải lên LMS (độ phân giải, thời lượng)
  • Điền thông tin podcast, kho nhạc từ tag ID3 / Vorbis
  • Kiểm tra codec và độ phân giải trước khi gửi video đi chuyển mã
  • Lấy ảnh bìa thu nhỏ cho thư viện audio

Hỏi đáp

Với URL có tải cả file không?

Không. Chỉ max_mb megabyte đầu (mặc định 8) được đọc. Phần đó chứa header của hầu hết file audio và file MP4 có chỉ mục ở đầu (fast start).

Có đọc độ phân giải và tốc độ khung hình video không?

Có với MP4, MOV, M4V, WebM và MKV: width, height, fps và codec video của từng track video.

File có bị lưu lại không?

Không. File chỉ được xử lý trong bộ nhớ cho yêu cầu đó rồi bỏ đi.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →