summaryrefslogtreecommitdiff
path: root/system/mediaextract
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2022-01-11 12:22:45 -0500
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-01-17 09:03:29 +0700
commitb997592d92da16a360b530d8c38a7e3c923002cf (patch)
treef161e59da5df6c025ec48ba79e414db460fffeb2 /system/mediaextract
parentd75a925a5e25a2b67864159419a54a42af332bdf (diff)
downloadslackbuilds-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/README8
-rw-r--r--system/mediaextract/mediaextract.1328
-rw-r--r--system/mediaextract/mediaextract.SlackBuild90
-rw-r--r--system/mediaextract/mediaextract.info10
-rw-r--r--system/mediaextract/mediaextract.rst260
-rw-r--r--system/mediaextract/slack-desc19
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: