Tape attaches metadata to files. You can also create archives. And attach metadata to archives. Use the same file extension as the original file to create long, "playable archives" that media players will play. Even do some very basic video editing from the command line.
Brought to you by TheNerdShow.com.
- Simple. Create archives, like zip.
- Compatible Tape archives are viewable with media players and viewers.
- Versatile. Any types of files and data can be joined with tape.
- Reversible. Archives contain an inventory catalog at the end, for later extraction.
- Stable. Tape is a command-line tool. Graphical interfaces may follow.
- Private. Files, media, and metadata stay on your device(s), and are never collected.
- Fast. No waiting for a large application or cloud to process and analyze your data.
- Free. Copy, share, even sell and support Tape, but please link to the author's web site.
- Universal metadata: Attach Author and References, so you know whom to credit.
- Tape can join whole folders of media into playable archives.
- Add your custom intro or outro clips to videos.
- Arrange pre-made media slides, chapters, or scenes like LEGO™ bricks.
- Combine individual images into playable movies.
- No more "mystery files."
- Attach text or audio clips to digital photos. Who was that in the picture?
- Remind yourself what research project a file belongs to.
- With tape, your data stays with the file, wherever it goes.
Did you know cat can string media files together into one big, long playlist?
And that most media players will play it?
Tape is sort of like that. Except tape can also take them apart again.
Why not just use tar? I could have used tar for this. But tar adds extra overhead and padding to files that make media players refuse to play them. It was important to me that tape archives be playable, and thus, to remain compatible with media players, they can even keep the same file extensions as the original file(s). You are free to use a different file extension if you want, however. The .tape extension works for me.
Why not use Adobe XMP? I did not want extra files kicking around with the same names but different extensions. I did not want hidden files or separate databases. I did not want a "standardized data model of serialization with core properties for the definition and processing of extensible metadata," whatever that means. I did not want to require my users to learn XML (although there is no restriction from attaching XML files with Tape, if they want to). I especially did not want a bureau of standards or commercial paywalls controlling my metadata.
Using tape to combine t.mp3, a.mp3, and pe.mp3 into a new tape.mp3.
tape t.mp3 a.mp3 pe.mp3 tape.mp3
Notice that tape.mp3 has the .mp3 file extension, so media players will play it. For best results, all media files in the archive should share the same bit rate and encoding. Use other programs to edit the ID3 tags, or simply use tape to attach a database file or text file containing all the metadata you want to add about the archive at the end. There are no restrictions on the type of metadata to include, or not include. The file, pe.mp3 could even be a voice recording of the metadata. Or we could tape a text file onto the end. It is all up to you.
Note on combining different types of media. You can put any kind of files and data into a tape archive. There are no restrictions. But if making a media archive, just remembetr that players will stop playing when they encounter a different type of media in the stream. Even when combining the same types of media files there could be hiccups that will stop some players from continuing, such as different bitrate, frame size, or compression scheme. The free console media player, mpg123 calls these "Frankenstein streams". Tools like ffmpeg may be used to convert archive members into the same format, if necessary.
Any media may be taped together. But tape archives are unique among archive formats.
- The first file or document in Tape archives is never compressed.
- Tape archives may keep the original file extension.
- Using the same file extension makes tape archives playable, and viewable.
- The first image or video in the archive serves as a preview.
- Existing viewers may only show the first thumbnail.
- Newer players should be able to flip through all media in the archive.
- Newer viewers should be able to play the animations in web pages.
A note on compatibility with editors. You could, hypothetically, use a Word document as the first file in a tape archive. Then you could open the entire archive with Word. But we would advise against this. You should extract documents separately, before editing. Otherwise, the archive will be corrupted upon saving the document. Current versions of Word and Excel do not know what to do with tape archives. This is true with other programs as well. Maybe someday, if this tool catches on, newer apps will become "tape-aware."
tape [options] [media] [attachments] ... output_file
-c optionally compress attachments with LZMA
tape [options] [attachments] ... input_file
-c optionally compress attachments
(media remains playable, and is never compressed).
-k list with human-readable file sizes
-l List media attachments
-x eXtract [attachments] from input_media
-o output to [directory]
-p extract [attachments] from input_media to pipe
-h Help
List files in a tape archived named, bar.mp4.
tape -k bar.mp4
Contents of bar.mp4:
2.4M bar.mp4
3M foo.mp3
3.4M baz.vpx
49K cover_art.jpg
2K LICENSE
1K README
(The numbers represent file sizes.)
Play bar.mp4 with any media player such as ffplay.
ffplay bar.mp4
Use ffplay to play "hidden" foo.mp3 inside an archive named, bar.mp4.
tape -p foo.mp3 bar.mp4 | ffplay
You should start playing with tape immediately. Download from https://github.com/themanyone/tape or use git:
git clone https://github.com/themanyone/tape.git
Tape allows us to attach any kind of data to files in a more or less uniform way, even metadata. But maybe we don't want to wantonly tape metadata onto files when there are already standards for that. Or maybe we do because there are too many competing standards. Here is what we need to know about metadata along with its advantages and disadvantages.
- How to tell where a file was downloaded from in Windows
- What EXIF Photo Data Is, How to Find It & How to Understand It
- ID3 metadata tags
- Metadata means "data about data"
- About Adobe XMP metadata XML syntax for document serialization and embedding
- More metadata formats, oh my
We use the standard GNU Build System, just like everyone else who is into free and open source (FOSS) software. Free software is available for Windows, Linux, Android, iPhones, and almost any computer or device. Open source software is distributed with source code that may need to be compiled before use. Different compilers and build systems exist for each type of system.
The best, free way to get started with development for Windows is with Cygwin, MinGW or MSYS (available through MinGW's mingw-get). Either one will compile free software. To build true windows programs and DLLs, use MinGW, or MinGW via Cygwin. One may build Windows programs on Cygwin without using MinGW, but they will depend on Cygwin.dll to run.
Installing Minimalist GNU for Windows (MinGW) on Windows
Installing Cygwin
Note: It is certainly possible to use Microsoft Visual Studio (MSVC) to build GNU software, but the task is not recommended for beginners.
Different brands of Linux each have their own way of installing software, including compilers and build systems.
Ubuntu Setting up a build system on Ubuntu
RHEL/CentOS and Fedora How to Install GNU GCC (C and C++ Compiler) and Development Tools
Install xz-devel or xz-dev via whatever package manager came with the build system installation above.
Ubuntu: lzma and lzma-dev
These steps are universally applicable to almost all free software builds
./autogen.sh to regenerate configure
./configure
make
make install
Anchor may be used to generate tape.c from tape.anch. The build should not ask for it, but if it does, Anchor may be found here: http://anch.org/anchor.html