diff options
author | B. Watson <yalhcru@gmail.com> | 2022-01-11 12:22:45 -0500 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-01-17 09:03:29 +0700 |
commit | b997592d92da16a360b530d8c38a7e3c923002cf (patch) | |
tree | f161e59da5df6c025ec48ba79e414db460fffeb2 /system/mediaextract | |
parent | d75a925a5e25a2b67864159419a54a42af332bdf (diff) | |
download | slackbuilds-b997592d92da16a360b530d8c38a7e3c923002cf.tar.gz |
system/mediaextract: Added (extract embedded media files)
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system/mediaextract')
-rw-r--r-- | system/mediaextract/README | 8 | ||||
-rw-r--r-- | system/mediaextract/mediaextract.1 | 328 | ||||
-rw-r--r-- | system/mediaextract/mediaextract.SlackBuild | 90 | ||||
-rw-r--r-- | system/mediaextract/mediaextract.info | 10 | ||||
-rw-r--r-- | system/mediaextract/mediaextract.rst | 260 | ||||
-rw-r--r-- | system/mediaextract/slack-desc | 19 |
6 files changed, 715 insertions, 0 deletions
diff --git a/system/mediaextract/README b/system/mediaextract/README new file mode 100644 index 0000000000..964261c7a4 --- /dev/null +++ b/system/mediaextract/README @@ -0,0 +1,8 @@ +mediaextract (extract media files that are embedded in other files) + +mediaextract extracts known media types such as RIFF, Ogg, etc, +from various 'resource' or 'archive' format files. files. It works +by looking for 'magic' byte sequences (like the file(1) command +does). A typical use case would be extracting resources from a +game. mediaextract does not support compression (zip/rar/7z/etc), so +uncompress the file first, if necessary. diff --git a/system/mediaextract/mediaextract.1 b/system/mediaextract/mediaextract.1 new file mode 100644 index 0000000000..6b73a5a325 --- /dev/null +++ b/system/mediaextract/mediaextract.1 @@ -0,0 +1,328 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "MEDIAEXTRACT" 1 "2022-01-03" "1.1.1" "SlackBuilds.org" +.SH NAME +mediaextract \- extracts media files that are embedded within other files +.\" RST source for mediaextract(1) man page. Convert with: +. +.\" rst2man.py mediaextract.rst > mediaextract.1 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.sp +mediaextract [\fI\-options\fP] \fIfilename\fP [\fIfilename\fP ...] +.SH DESCRIPTION +.sp +\fBmediaextract\fP extracts known media types such as RIFF, Ogg, etc, +from various \(aqresource\(aq or \(aqarchive\(aq format files. files. It works +by looking for \(aqmagic\(aq byte sequences (like the \fBfile(1)\fP command +does). A typical use case would be extracting resources from a +game. \fBmediaextract\fP does not support compression (zip/rar/7z/etc), so +uncompress the file first, if necessary. +.SH OPTIONS +.INDENT 0.0 +.TP +.B \-h\fP,\fB \-\-help +Print this help message. +.TP +.B \-q\fP,\fB \-\-quiet +Do not print status messages. +.TP +.B \-s\fP,\fB \-\-simulate +Don\(aqt write any output files. +.TP +.BI \-o\fP,\fB \-\-output\fB= DIR +Directory where extracted files should be written. (default: ".") +.TP +.BI \-a\fP,\fB \-\-filename\fB= FORMAT +Format string for the file names. (default: "{filename}_{offset}.{ext}") +.INDENT 7.0 +.TP +.B Supported variables: +.INDENT 7.0 +.TP +.B filename +Filename of the extracted archive. +.TP +.B offset +Offset within the archive, in hexadecimal. +.TP +.B index +0\-based index of the extracted file in decimal. +.TP +.B size +Size of the extracted file in decimal. +.TP +.B ext +Extension associated with the filetype of the extracted file. +.UNINDENT +.UNINDENT +.TP +.BI \-i\fP,\fB \-\-offset\fB= OFFSET +Start processing at byte OFFSET. (default: 0) +.TP +.BI \-n\fP,\fB \-\-length\fB= LENGTH +Only process LENGTH bytes. (default and maximum: 8 EB) +.TP +.BI \-m\fP,\fB \-\-min\-size\fB= SIZE +Minumum size of extracted files (skip smaller). (default: 0) +.TP +.BI \-x\fP,\fB \-\-max\-size\fB= SIZE +Maximum size of extracted files (skip larger). Default and maximum: 16 EB. +.sp +The last character of OFFSET, LENGTH and SIZE may be one of the following: +.INDENT 7.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +B (or none) for Bytes +.IP \(bu 2 +k for Kilobytes (units of 1024 Bytes) +.IP \(bu 2 +M for Megabytes (units of 1024 Kilobytes) +.IP \(bu 2 +G for Gigabytes (units of 1024 Megabytes) +.IP \(bu 2 +T for Terabytes (units of 1024 Gigabytes) +.IP \(bu 2 +P for Petabytes (units of 1024 Terabytes) +.IP \(bu 2 +E for Exabytes (units of 1024 Petabytes) +.UNINDENT +.UNINDENT +.UNINDENT +.sp +The special value "max" selects the maximum alowed value. +.TP +.BI \-f\fP,\fB \-\-formats\fB= FORMATS +Comma separated list of formats (file magics) to extract. +.INDENT 7.0 +.TP +.B Supported formats: +.INDENT 7.0 +.TP +.B all +all supported formats +.TP +.B default +the default set of formats (AIFF, ASF, AU, BINK, BMP, GIF, ID3v2, IT, JPEG, MPEG 1, MPEG PS, MIDI, MP4, Ogg, PNG, RIFF, S3M, SMK, XM, XMIDI) +.TP +.B audio +all audio files (AIFF, ASF, AU, ID3v2, IT, MIDI, MP4, Ogg, RIFF, S3M, XM, XMIDI) +.TP +.B text +all text files (ASCII, UTF\-8, UTF\-16LE, UTF\-16BE, UTF\-32LE, UTF\-32BE) +.TP +.B image +all image files (BMP, PNG, JPEG, GIF) +.TP +.B mpeg +all safe mpeg files (MPEG 1, MPEG PS, ID3v2) +.TP +.B tracker +all tracker files (MOD, S3M, IT, XM) +.TP +.B video +all video files (ASF, BINK, MP4, RIFF, SMK) +.TP +.B aiff +big\-endian (Apple) wave files +.TP +.B ascii +7\-bit ASCII files (only printable characters) +.TP +.B asf +Advanced Systems Format files (also WMA and WMV) +.TP +.B au +Sun Microsystems audio file format (.au or .snd) +.TP +.B bink +BINK files +.TP +.B bmp +Windows Bitmap files +.TP +.B gif +Graphics Interchange Format files +.TP +.B id3v2 +MPEG layer 1/2/3 files with ID3v2 tags +.TP +.B it +ImpulseTracker files +.TP +.B jpeg +JPEG Interchange Format files +.TP +.B midi +MIDI files +.TP +.B mod \fI[1]\fP +Noisetracker/Soundtracker/Protracker Module files +.TP +.B mpg123 \fI[1]\fP \fI[2]\fP +MPEG layer 1/2/3 files (MP1, MP2, MP3) +.TP +.B mpeg1 +MPEG 1 System Streams +.TP +.B mpegps +MPEG 2 Program Streams +.TP +.B mpegts \fI[1]\fP +MPEG 2 Transport Streams +.TP +.B mp4 +MP4 files (M4A, M4V, 3GPP etc.) +.TP +.B ogg +Ogg files (Vorbis, Opus, Theora, etc.) +.TP +.B png +Portable Network Graphics files +.TP +.B riff +Resource Interchange File Format files (ANI, AVI, MMM, PAL, RDI, RMI, SGT, STY, WAV, WEBP and more) +.TP +.B s3m +ScreamTracker III files +.TP +.B smk +Smaker files +.TP +.B utf\-8 +7\-bit ASCII and UTF\-8 files (only printable code points) +.TP +.B utf\-16be +big\-endian UTF\-16 files (only printable code points) +.TP +.B utf\-16le +little\-endian UTF\-16 files (only printable code points) +.TP +.B utf\-32be +big\-endian UTF\-32 files (only printable code points) +.TP +.B utf\-32le +little\-endian UTF\-32 files (only printable code points) +.TP +.B xm +Extended Module files +.TP +.B xmidi +XMIDI files +.UNINDENT +.UNINDENT +.UNINDENT +.sp +If \(aq\-\(aq is written before a format name, that format will be removed +from the set of formats to extract. E.g. extract everything except +tracker files: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +mediaextract \-\-formats=all,\-tracker data.bin +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +\fI[1]\fP WARNING: Because MP1/2/3 files do not have a nice file magic, using +the \(aqmpg123\(aq format may cause \fIa lot\fP of false positives. Nowadays +MP3 files usually have an ID3v2 tag at the start, so using the \(aqid3v2\(aq +format is the better option anyway. +.sp +The detection accuracy of MOD files is not much better and of MPEG TS +it is even worse and thus the \(aqmpg123\(aq, \(aqmpegts\(aq and \(aqmod\(aq formats are +per default disabled. +.sp +\fI[2]\fP NOTE: When using only the \(aqmpg123\(aq format but not \(aqid3v2\(aq, any ID3v2 +tag will be stripped. ID3v1 tags will still be kept. +.SH EXAMPLES +.sp +Extract .wav, .aif and .ogg (might actually be .ogg, .opus or .ogm) files from +the file \fBdata.bin\fP and store them in the \fB~/Music\fP directory: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +mediaextract \-f riff,aiff,ogg \-o ~/Music data.bin +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +This will then write files like such into \fB~/Music\fP: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +data.bin_00000000.ogg +data.bin_00FFB2E3.wav +data.bin_01F3CD45.aif +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +The hexadecimal number in the written file names gives the offset where the audio +file was found, within the data file. +.sp +Extract .mp3, .mp2 and .mp1 files (with or without ID3v2 tags). The \fBmpg123\fP +option yields a lot of false positives because there is no nice way to +unambigiously detect MPEG files. These false positives are however usually very +small, so using the \fB\-\-min\-size\fP option one can hopefully extract only real MPEG +files: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +mediaextract \-f id3v2,mpg123 \-\-min\-size=100k \-o ~/Music data.bin +.ft P +.fi +.UNINDENT +.UNINDENT +.SH COPYRIGHT +.sp +See the file /usr/doc/mediaextract\-1.1.1/LICENSE.txt for license information. +.SH AUTHOR +.sp +mediaextract was written by Mathias Panzenböck. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.\" Generated by docutils manpage writer. +. diff --git a/system/mediaextract/mediaextract.SlackBuild b/system/mediaextract/mediaextract.SlackBuild new file mode 100644 index 0000000000..bb8e9aada8 --- /dev/null +++ b/system/mediaextract/mediaextract.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/bash + +# Slackware build script for mediaextract + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=mediaextract +VERSION=${VERSION:-1.1.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-v$VERSION +unzip $CWD/$PRGNAM-v$VERSION.zip -x '*/build-*/*' +cd $PRGNAM-v$VERSION +chown -R root:root . +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +cd source +mkdir -p build-linux32 build-linux64 + +# The last -e here stops it building the man page. Do this because +# we have our own (better-formatted) man page, and also to fix +# parallel builds. +sed -i \ + -e "s,-Werror,," \ + -e "/^CFLAGS/s,-O2 -g,$SLKCFLAGS," \ + -e "/all:/s, [^ ]*MANPAGE.*$,," \ + Makefile + +make + +# upstream's install target is weird and inflexible. +mkdir -p $PKG/usr/bin $PKG/usr/man/man1 $PKG/usr/doc/$PRGNAM-$VERSION +install -s -m0755 build-linux*/$PRGNAM $PKG/usr/bin +install -m0644 LICENSE.txt ../README* $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +# upstream's generated man page has horrible formatting, and the +# author's own name gets mangled (the ö came out as ??). I spent +# some time reformatting it in RST, and also added the examples from +# the README.md. +gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/system/mediaextract/mediaextract.info b/system/mediaextract/mediaextract.info new file mode 100644 index 0000000000..dcc3ae701e --- /dev/null +++ b/system/mediaextract/mediaextract.info @@ -0,0 +1,10 @@ +PRGNAM="mediaextract" +VERSION="1.1.1" +HOMEPAGE="https://github.com/panzi/mediaextract" +DOWNLOAD="https://github.com/panzi/mediaextract/releases/download/v1.1.1/mediaextract-v1.1.1.zip" +MD5SUM="eb24172ca19e141090cbd7330abc55da" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/system/mediaextract/mediaextract.rst b/system/mediaextract/mediaextract.rst new file mode 100644 index 0000000000..819354fbd6 --- /dev/null +++ b/system/mediaextract/mediaextract.rst @@ -0,0 +1,260 @@ +.. RST source for mediaextract(1) man page. Convert with: +.. rst2man.py mediaextract.rst > mediaextract.1 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 1.1.1 +.. |date| date:: + +============ +mediaextract +============ + +--------------------------------------------------------- +extracts media files that are embedded within other files +--------------------------------------------------------- + +:Manual section: 1 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +mediaextract [*-options*] *filename* [*filename* ...] + +DESCRIPTION +=========== + +**mediaextract** extracts known media types such as RIFF, Ogg, etc, +from various 'resource' or 'archive' format files. files. It works +by looking for 'magic' byte sequences (like the **file\(1)** command +does). A typical use case would be extracting resources from a +game. **mediaextract** does not support compression (zip/rar/7z/etc), so +uncompress the file first, if necessary. + +OPTIONS +======= + +-h, --help + Print this help message. + +-q, --quiet + Do not print status messages. + +-s, --simulate + Don't write any output files. + +-o, --output=DIR + Directory where extracted files should be written. (default: ".") + +-a, --filename=FORMAT + Format string for the file names. (default: "{filename}_{offset}.{ext}") + + Supported variables: + filename + Filename of the extracted archive. + offset + Offset within the archive, in hexadecimal. + index + 0-based index of the extracted file in decimal. + size + Size of the extracted file in decimal. + ext + Extension associated with the filetype of the extracted file. + +-i, --offset=OFFSET + Start processing at byte OFFSET. (default: 0) + +-n, --length=LENGTH + Only process LENGTH bytes. (default and maximum: 8 EB) + +-m, --min-size=SIZE + Minumum size of extracted files (skip smaller). (default: 0) + +-x, --max-size=SIZE + Maximum size of extracted files (skip larger). Default and maximum: 16 EB. + + The last character of OFFSET, LENGTH and SIZE may be one of the following: + + * B (or none) for Bytes + * k for Kilobytes (units of 1024 Bytes) + * M for Megabytes (units of 1024 Kilobytes) + * G for Gigabytes (units of 1024 Megabytes) + * T for Terabytes (units of 1024 Gigabytes) + * P for Petabytes (units of 1024 Terabytes) + * E for Exabytes (units of 1024 Petabytes) + + The special value "max" selects the maximum alowed value. + +-f, --formats=FORMATS + Comma separated list of formats (file magics) to extract. + + Supported formats: + all + all supported formats + + default + the default set of formats (AIFF, ASF, AU, BINK, BMP, GIF, ID3v2, IT, JPEG, MPEG 1, MPEG PS, MIDI, MP4, Ogg, PNG, RIFF, S3M, SMK, XM, XMIDI) + + audio + all audio files (AIFF, ASF, AU, ID3v2, IT, MIDI, MP4, Ogg, RIFF, S3M, XM, XMIDI) + + text + all text files (ASCII, UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE) + + image + all image files (BMP, PNG, JPEG, GIF) + + mpeg + all safe mpeg files (MPEG 1, MPEG PS, ID3v2) + + tracker + all tracker files (MOD, S3M, IT, XM) + + video + all video files (ASF, BINK, MP4, RIFF, SMK) + + aiff + big-endian (Apple) wave files + + ascii + 7-bit ASCII files (only printable characters) + + asf + Advanced Systems Format files (also WMA and WMV) + + au + Sun Microsystems audio file format (.au or .snd) + + bink + BINK files + + bmp + Windows Bitmap files + + gif + Graphics Interchange Format files + + id3v2 + MPEG layer 1/2/3 files with ID3v2 tags + + it + ImpulseTracker files + + jpeg + JPEG Interchange Format files + + midi + MIDI files + + mod *[1]* + Noisetracker/Soundtracker/Protracker Module files + + mpg123 *[1]* *[2]* + MPEG layer 1/2/3 files (MP1, MP2, MP3) + + mpeg1 + MPEG 1 System Streams + + mpegps + MPEG 2 Program Streams + + mpegts *[1]* + MPEG 2 Transport Streams + + mp4 + MP4 files (M4A, M4V, 3GPP etc.) + + ogg + Ogg files (Vorbis, Opus, Theora, etc.) + + png + Portable Network Graphics files + + riff + Resource Interchange File Format files (ANI, AVI, MMM, PAL, RDI, RMI, SGT, STY, WAV, WEBP and more) + + s3m + ScreamTracker III files + + smk + Smaker files + + utf-8 + 7-bit ASCII and UTF-8 files (only printable code points) + + utf-16be + big-endian UTF-16 files (only printable code points) + + utf-16le + little-endian UTF-16 files (only printable code points) + + utf-32be + big-endian UTF-32 files (only printable code points) + + utf-32le + little-endian UTF-32 files (only printable code points) + + xm + Extended Module files + + xmidi + XMIDI files + +If '-' is written before a format name, that format will be removed +from the set of formats to extract. E.g. extract everything except +tracker files:: + + mediaextract --formats=all,-tracker data.bin + +*[1]* WARNING: Because MP1/2/3 files do not have a nice file magic, using +the 'mpg123' format may cause *a lot* of false positives. Nowadays +MP3 files usually have an ID3v2 tag at the start, so using the 'id3v2' +format is the better option anyway. + +The detection accuracy of MOD files is not much better and of MPEG TS +it is even worse and thus the 'mpg123', 'mpegts' and 'mod' formats are +per default disabled. + +*[2]* NOTE: When using only the 'mpg123' format but not 'id3v2', any ID3v2 +tag will be stripped. ID3v1 tags will still be kept. + +EXAMPLES +======== + +Extract .wav, .aif and .ogg (might actually be .ogg, .opus or .ogm) files from +the file **data.bin** and store them in the **~/Music** directory:: + + mediaextract -f riff,aiff,ogg -o ~/Music data.bin + +This will then write files like such into **~/Music**:: + + data.bin_00000000.ogg + data.bin_00FFB2E3.wav + data.bin_01F3CD45.aif + +The hexadecimal number in the written file names gives the offset where the audio +file was found, within the data file. + +Extract .mp3, .mp2 and .mp1 files (with or without ID3v2 tags). The **mpg123** +option yields a lot of false positives because there is no nice way to +unambigiously detect MPEG files. These false positives are however usually very +small, so using the **--min-size** option one can hopefully extract only real MPEG +files:: + + mediaextract -f id3v2,mpg123 --min-size=100k -o ~/Music data.bin + + +COPYRIGHT +========= + +See the file /usr/doc/mediaextract-|version|/LICENSE.txt for license information. + +AUTHOR +====== + +mediaextract was written by Mathias Panzenböck. + +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. diff --git a/system/mediaextract/slack-desc b/system/mediaextract/slack-desc new file mode 100644 index 0000000000..745b35c0f4 --- /dev/null +++ b/system/mediaextract/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +mediaextract: mediaextract (extract media files that are embedded in other files) +mediaextract: +mediaextract: mediaextract extracts known media types such as RIFF, Ogg, etc, from +mediaextract: various 'resource' or 'archive' format files. Typical use case would +mediaextract: be extracting resources from a game. +mediaextract: +mediaextract: +mediaextract: +mediaextract: +mediaextract: +mediaextract: |