What is an OBML file?
An OBML (Opera Binary Markup Language) file is an offline version of a webpage saved by Opera Mini mobile web browser. It is a self-contained, compact version of the HTML files that contains all the elements of the page for display on specific devices while offline. The OBML file format has upgraded to several versions with OBML15 and OBML16 being used at large. An important point to keep in consideration is that each Opera Mini version is only compatible with one OBML format. Thus, upgrading of Opera Mini will leave previously saved pages readable. OBML files can be converted to HTML and PDF.
OBML File Format
OBML file format is saved in Opera’s proprietary file format and its file format specifications are not available publicly. However, OMBL format was reverse engineered to decode its structure as follow.
OBML Data Types
As per the reverse engineered results, OBML uses the following primitive types:
byte
– unsigned integer (1 byte)short
– signed integer (2 bytes, big-endian)medium
– signed integer (3 bytes, big-endian)blob
– { length: short, data: byte[length] }char
– a byte containing an ASCII characterstring
– a blob containing UTF-8 encoded text
OBML Header
header := {
(if version >= 15) {
fake_file_size: medium = 0x02d355
fake_version: byte = 16
}
file_size: medium
version: byte
page_size: coords
(if version == 16) {
unknown: byte[3] // always S\x00\x00
}
unknown: short // always -1
page_title: string
unknown: blob
page_url_base: string
page_url: url
(if version >= 15) {
unknown: byte[6]
}
(if 6 < version <= 13) {
unknown: byte[5]
}
(if version == 6) {
unknown: byte[1]
}
metadata: chunk[]
content: chunk[]
}