Managing Books


Providing books on the Aesop player.

Managing Books

For a book reader to be useful, it must have books to read. For most users, books will either be downloaded from a Internet browser or some form of shared Internet access. We'll start with a simple example.

There are a lot of ways to install books. This is a long section to give guidance on many of those ways; much of it is intended as reference, not tutorial. It's unlikely you'll use more than one or two of the available ways. We suggest reading the examples, and if they do not fit your circumstances using the section titles to find a solution that will.

(This material would get really tedious if it said "technical support person or caregiver" a lot. Thus it uses "you", and you can take the meaning that's appropriate to your circumstances.)

Managing Books Screens

For reference, here is a guide to the two main screens used for managing books. They are similar in many ways. We'll discuss the details in various places.

The Inventory (Current Books) Screen

  1. Selects this screen.
  2. Click to edit book title.
  3. Select/deselect this book.
  4. Total length of all books.
  5. Select/deselect all books.
  6. Delete selected books.
  7. Reset (to beginning) selected books.
  8. (More): Archive rather than delete.
  9. Click to edit book position.
  10. Maintenance Mode (click to change) - in off state.
  11. Duplicate Book indicator. See here.

The New Books Screen

  1. Selects this screen.
  2. Book cannot be selected - title already in Inventory
  3. Click to edit book title.
  4. Select/deselect this book.
  5. Name of directory being used. Click to change that.
  6. Select/deselect all books.
  7. Install selected books.
  8. (More): Select download directory; group and ungroup; copy rather than delete.
  9. Maintenance Mode (click to change) - in on state.

Getting Started

Example 1

We'll use the example in Getting Started. If you haven't done it, it's the best way to become familiar with the process.
(If you're trying to skip doing a download on your device, we'll get to that in Example 2.)

What happened in the example

Three things happened in the example:

  1. You got a book onto the device (from the Internet in this case).
  2. You "formatted" the book in a way that Aesop will understand.
  3. You put the book where Aesop would find it, so it could play it. (This happened automatically in this case, but that isn't always the case.)

In a bit more detail (and there's more detail in Terms and Concepts):

  1. You have to get the book onto the device, somehow. There are lots of places books can be obtained. The sources are usually the Internet and physical media like CDs. The book might be put (for example) on a PC or USB drive on its way to your device.
  2. Aesop expects the book to be organized in a particular way so it can play it. Books actually come organized in several ways. Aesop will convert several of the most common book types into the format it needs. Sometimes the book is already that way.
  3. Aesop expects to find the books in one of the AudioBooks directories (folders) on your device. There usually will be Android 11 introduced additional security rules that makes this more complicated. The Alternate Directories section below has more details. more than one; see Directory Selection for how these are used. Aesop will automatically create any directories it needs when it first runs, but if something goes wrong, you need to be sure it's there.

Cleaning up

After you've read your books, and want some new ones, you may find either that having the old ones around makes it hard to find your new books, or that you've run out of space on the device. (Or, likely, both.) It's fairly easy to clean up, but you have to remove some books "the same way" you added them. Go to Settings and then click on "Inventory" (the Aesop icon) at the bottom of the screen. It will look something like this. This will list all your books. Check the checkbox for the ones you no longer want to read, then the "delete" (trash can, #6 in the graphic) button at the upper right, and they will be deleted. (Be sure to scroll all the way to the bottom.)

Some books may be marked with a "padlock" icon. Those cannot be removed this way due to Android constraints; these are the ones you have to remove "the same way" you added them. See Example 2 below for more on that.

You probably noted that some books were already checked. If you look closely, on the right, the word "Completed" will appear for those books. It will also give the total time, current position in the book, and percent completed. You can check books you didn't want to finish, and uncheck books that you want to reread before clicking delete. You can use the "All" button to check (or uncheck) all the books if that makes things easier. Just don't click the Delete button until you're sure all the checks are correct, because the books will be completely removed and you'll have to reload them from wherever you got them to get them back.

If you check closely, if a completed book has been replayed more than a minute, it's likely that it's being reread. Those aren't automatically suggested for deletion.

Example 2

Here's another example, chosen to be different in most ways from the previous one, but it's also likely to be a common way of getting books. After this example we'll explain the pieces separately in more detail, and you can fit them together to match your needs.

This example uses a PC (or Mac) to do most of the work. This is actually not very difficult, but if the steps aren't clear, you may want to have a friend who is familiar with devices and PCs help you the first time. There's a lot of variation in Android devices, so you'll need to adapt to what happens with your device. Some of the variation shows up in the way the PC acts.
If you're using a Mac, you may need the Android file transfer tool.

  1. Obtain a USB cable Your device charging cable will probably do if it unplugs from the transformer. to connect your PC to your device and connect it.
  2. Typically a File Manager Some devices may want you to download a support application. You don't need to as long as you have a File Manager window, but if it isn't there (which can happen), you'll have to download the application.
    Be sure you download from the device manufacturer's Internet site.
    window will pop up on the PC, looking like the image to the right.
  3. Depending on the Android device, you may be presented with a popup on the device asking what you want to do with the connection; something like "Do you want to allow the Computer to access your files?" Alternatively a notification may be displayed that you will click on from Android Settings. In any case, you want to set it up to Transfer (or "Access") Files (or be a "Media Device" if "Transfer Files" isn't an option).
  4. On the PC, click on Phone in the File Manager's window for the device, then on AudioBooks.
  5. On the PC, use the Internet Browser to Download a book from one of the places suggested in Getting Started. For our example we'll use The Hound of the Baskervilles from librivox.org found here. (We've chosen the first of several performances.) We'll assume that it ends up in the PC browser's On a Windows PC, this is Downloads with an s (as opposed to without on Android), and case does not matter. (That's historical and we just must live with it.) Downloads directory, which is the default.
  6. On the PC, in a new File Manager Window, go to Downloads and find the book. The name of the book will probably be a single word (no spaces) that contains elements of the actual title separated by underscores. (In our case, hound_baskervilles_librivox_64kb_mp3.zip.)
  7. Right click on the book name. Choose "Extract All…". A new window will pop up. It's helpful but not necessary to click on "Show Extracted Files When Complete". Click the "Extract" button.
  8. A new folder will appear with the name without .zip.
  9. In that folder you'll find several .mp3 files, one for each Note how the individual files are named with leading zeros in the chapter numbers. chapter. Chapter titles may be shown.
  10. If we were to install the book into Aesop right now, the spoken title could be the name of the folder, which would cause the spoken title to be painful to listen to.
    In our specific example it'd actually work out, but you can't count on it. See metadata.
  11. Rename the directory: double click on the directory name and type a new book title that would be suitable to be read aloud. In this case "Hound of the Baskervilles - Arthur Conan Doyle" would be You can skip this step if the metadata is OK, but be sure to check the Album Title shown for each .mp3 file. fine.
  12. Drag the directory you just renamed from the File Manager window it is in to the AudioBooks directory on the device. This will copy the directory (leaving the original behind, since it's a different file system.)
  13. After several seconds, Aesop (if it's running) will notice there's a new book, and you can select it in the books window. After a little while longer the length of the book will be shown.
  14. The book is ready to be played.
  15. The new folder on the PC and the .zip file are no longer needed and can be deleted.

What happened in Example 2

The same three steps as in Example 1 are the primary things that happened here.
  1. You got the book. This time via the PC's Internet browser.
  2. You formatted it. You converted it from .zip format to a directory of .mp3 files.
  3. You installed it. You renamed and then copied it from the PC to AudioBooks

There were many more intermediate steps, and for books from Internet sources like these, it's not necessary to involve a PC, but some of the other sources of books will require a PC (and more steps) prior to moving the folder to AudioBooks.

Note on Cleaning Up: We used the directory AudioBooks in this example. Starting with the release of Android 11, and due to the way the Android ecosystem works on older devices as well, the AudioBooks directory cannot be written by most applications (including Aesop). If the tools you are using allow you to install a book, they will also allow you to delete it, but you may not be able to delete it with Aesop directly. Thus, if you add a book using the process above, delete it in the same way when you are done with it. Aesop will discover that the book is gone when you remove it. See Alternate Directories for more on this topic if you want to mix-and-match techniques.

Terms and Concepts

This is where things start to get unavoidably complicated. From this point on, it's best to think of this as reference material, but the Terms and Concepts below will be necessary to make effective use of the rest.

There are several terms and concepts that make explaining the pieces of the process of getting books easier. It's time to deal with those.

Metadata

Many, but far from all, audio books include metadata. Metadata is additional information about the book beyond the basic audio. Audio files can contain metadata directly, and some Audio Books contain additional files of metadata. The items of interest in the audio file are the book title, author, and the individual chapter titles. The Aesop Player will make the best use it can of that information if it is present.

The fields found in audio file metadata have standard names. The Album Title and Contributing Artists are combined to form the book title. The Title (that's the song title for music) is treated as the chapter title. If the metadata is absent the player makes educated guesses from file names. There's more on handling books without metadata here.

If the directory name of the book contains at least one space, Aesop will assume that the title it should use for display and for speech is that directory name. Typically the directory name, as downloaded (usually in a .zip file) does not have spaces and is not very user friendly. The policy of looking for a space avoids forcing you to rename all directories, but allows a simple rename if the metadata is absent or otherwise unhelpful.

Most books on CD (and all on tape) do not have metadata. The directory name is the best choice for providing a title. It would be possible to create your own metadata in those cases, but that topic is outside the scope of this document.

Aesop Book Format

A book for Aesop consists of a collection of chapters (usually a convenient size) organized in a container called a directory (or "folder").

The Aesop player can play chapters that are recorded in the .mp3, .m4a, .m4b and .ogg "audio file" formats, which covers most of the books that are available online. If you find a book in some other format, it usually can be transformed with applications found on the Internet that you can run on a PC.

The chapters are collected into a directory. For anything found on the Internet, the chapters are carefully named so that when sorted by the device they will be played in the proper order. Other sources, not always. Some book formats consist not only of the audio chapters but other metadata, including the book content as text, indexing information, and sometimes covers or other graphics. Aesop quietly ignores (but preserves) that additional information.

For a short story, there might be only one "chapter", and thus it might come to you without a directory. For a very long book the chapters may be organized into sub-directories which then appear in a containing directory. (Some versions of War and Peace have a directory for each of the author's "Books", which are then collected into a parent directory for the whole of the book.) Aesop requires that each book is in its own directory (so short stories may be a directory with a single audio file). Directories may be nested to any depth; it will play the chapters in the order specified by the sub-directory and chapter names (in the usual order).

The book title is arrived at as described in metadata. If the title derived from the metadata is acceptable, the name of the directory can be anything that doesn't contain a space, and frequently it's the name of the .zip file it was delivered in. If you want to control the title explicitly, any name with at least one space will be treated as the title.

If there is no metadata, the title will be the directory name. That can be ugly or hard to listen to; the fix is to change the title.

Other Book Formats

Many (most?) online books are kept as a .zip file. A zip file is a representation of a directory and its contents packed tightly together, and are much easier to handle on the Internet. But they need to be unpacked to be played. The installer takes care of that… usually. There are a number of zip file formats, and Aesop can handle most of them, but new ones appear periodically. Should that happen you'll have to unpack it yourself. (Do let us know about the problem.)

The installer will convert a single audio file into a directory containing an Audio file, and knows how to handle directories of any depth.

Alternate Directories

This is an advanced topic, you can ignore it until you need it. See the box about terminology on Android here for some clarifying notes.

Historically Aesop found books in the AudioBooks On Android these names are case sensitive: audiobooks and AudioBooks are different things. directory in the root Pedantically, this is not actually the root directory, but that is all that is made available by Windows File Explorer. If you already know this, you probably can figure this all out for yourself. directory on the built-in storage of the device, as seen by the Windows File Explorer. (We'll call that the "short" name.) Starting in Android 11, this directory became unwritable by applications, although they can read it. Android now expects applications like Aesop to use a directory with a long and easily forgotten name. For Aesop: Android/data/github.io.donnKey.aesop/files/AudioBooks. Aesop uses the long name by default for anything it writes/copies, such as samples and downloaded books it installs, but it also looks in the short name directory and will play books it finds there as well. However, it is not supposed to be able to remove anything from the short name directory, so if you put a book in (short) AudioBooks using File Explorer (or any other tool) you must remove it using the same sort of tool.

On older devices, there may not be much space available on the root drive. Both the short and long directory names usually share the same storage on the root drive. Some devices have the ability to add a "SD" (Secure Digital) card to add more storage.

In addition to the usual places, Aesop will also look for, and play, books found in the AudioBooks directory in the root of any SD card it discovers. The AudioBooks directory at the root of an SD card (if it even exists) may or may not be writable (or even accessible) by Aesop. Aesop will use it if it can, and use it in managing books if it can, but more often than not Aesop will be unable to write (or change) anything in that directory.

It will frequently be the case that you can create and add (or delete) books in the AudioBooks directory at the root of an SD card from your PC connected by a cable to the device, and if you remove the SD card and plug it into your PC (appropriate adapters are available), it should always be possible. The rules (whatever they may be) that apply to Aesop apply to most other applications, although there are some (vendor-supplied) file managers that have special permissions and can modify SD root AudioBooks (if your device is new enough).

This doesn't mean you can't use the space on the SD card for your books, it just means you can't put your books in (the root) AudioBooks. Aesop can also use the directory The name Android/media/github.io.donnKey.aesopPlayer follows some 'magic' rules defined for Android and cannot be changed by the application. Android/media/github.io.donnKey.aesopPlayer/AudioBooks (note: "media", not "data"). (Where Android is at the root of the SD card or root file system.) All the managing books stuff will "just work" on this directory. The downside of this is that no other app can get to these books (but again, you can get to them using a PC). Either of the AudioBooks directories on the SD card works out of the same physical storage, so there's no space advantage one over the other.

The directory Android/media/github.io.donnKey.aesopPlayer/AudioBooks on the built-in storage will be used if you create it. This would only be useful if you have a device where Android/… files are put on physically different storage. This is theoretically possible but rare.

The directory (and content of) Android/media/github.io.donnKey.aesopPlayer/AudioBooks on either the built-in storage or SD card will be deleted if you uninstall Aesop Player. So will Android/data/github.io.donnKey.aesopPlayer/.... The AudioBooks at the root of the device or a SD card will not be deleted. (This is Android policy, not anything we control.)

When installing books, Aesop first installs them in the long-name AudioBooks directory until it is 90% or more full, then Android/media/github.io.donnKey.aesopPlayer/AudioBooks on the device root, if it exists, and there's space. Then it will then use AudioBooks on the SD card, if it exists, until it is 90% or more full, then Android/media/github.io.donnKey.aesopPlayer/AudioBooks on the SD card, if it exists and there's space. It will use additional SD cards if it finds them and the directories exist and there's space.

It will always install "whole" books in a single directory. If something goes wrong (out of space is most likely) an error log will be popped up with details showing what it did and what failed.

Getting Books

This is a good place to remind you that many books are copyrighted, and that you should respect the rights of the copyright owners. Most Internet sites have some statement of copyright, or you will encounter one in the process of gaining access. Take a moment to read it. The free Internet sites usually have very permissive copyrights, the paid ones (and usually public libraries) have limitations, but frequently copying on to a player like Aesop (for a limited duration) is allowed. Other media may have other constraints.

Some book sources, such as Audible, use DRM (Digital Rights Management) to protect their books. Aesop (being free) doesn't have DRM support and thus cannot be used on those books.

...from the Internet

The simplest case is that you have found a Internet site that allows you to download books as you did in the Examples.

Usually, just do as you did in Example 1, or if you don't want to use the Internet from the device, follow Example 2. There are too many Internet Sites many to go into depth on them here, but the Internet sites want you to download; it's supposed to be obvious. The books from these sites typically have metadata, so titles won't usually be a problem. If the book title and such don't look right, you can fix that here.

When working directly on the device, typically you'd do a bunch of downloads as in the first part of Example 1, and when they all complete, do the INSTALL step in "New Books", item 7 all at once. (Just because that would be fewer clicks.) If your Internet browser makes it easy, you can do some simultaneous downloads. Don't start a lot simultaneously, but 2 or 3 could go at once without interfering with each other too much.
(Advanced) Or use a download manager application to manage a queue of downloads. There are several to choose from in the store.

Once the downloads are completed (which takes time depending on the book length and your Internet speed), you use Aesop's built in managing books tools to reformat (depending on the file type), Normalize Names, and install the books. It will automatically handle books already in the Aesop book format described above, .zip files that yield the same format, and single audio files. From "New Books" click the check boxes for the books you want (scroll to see if there are more), then the "INSTALL" button. It will figure out how to reformat the book, handle the metadata and install it where you can play it. It will move (not copy) the book from Download to the library - it does it that way to save space and clear up clutter in Download. See Copy vs. Delete for more on that.

...from Other Book Sources on your Device

If you have books on your device that don't happen to be in Download, you can direct the installer to get books from where they are instead. The most common reasons are that you are using Cloud storage (more on that here), or you are using physically external storage (see here). To select a new place to load books from, simply click on the name of the current directory (item 5) on the upper part of the Add Books screen. You will see a popup window titled "Set Source Directory"; click SELECT NEW and a new screen will be displayed. Use that to find the directory you want (the one containing the books, not a specific book), select "Confirm" or "Select" and it will return you to the Add Books screen, with the new list of books displayed. You can then proceed as you previously have.

Once you have selected a new source directory, the Aesop Player will remember the prior directories you have used to install books from. If you click on the name of the current download directory again, it will list the remembered ones, and you can click on the saved name to go back to it. (Some names get quite long!) Clicking on the red "X" will delete the entry.

Normally the player deletes the source book as it moves them to AudioBooks because they are so large. You can have it retain them instead by clicking on the three vertical dots (item 8) on the upper right of the screen (⋮)(called "More" in Android-speak) and clicking on Retain after copy". See below.

...from SD Drives

The terminology used for different types of storage varies with the Android revision and is quite confusing due to history. We'll always refer to addable (and thus removable) storage as "removable storage". If we're referring specifically to SD cards, we'll use "removable SD cards". In Android literature, "external" storage frequently does NOT refer to anything removable or physically external to the device.

Also due to history, the locations that can be modified on the SD cards (removable or not) are messy and confusing. We'll try to keep it simple, a consequence of which is that it can appear unreasonably arbitrary. Since we want Aesop to run on older devices that have been retired as phones, we can't use some of the newer possible solutions.

The large variety of Android manufacturers combined with the many Android revisions is a source of inconsistency in this area. You may end up with a device that doesn't work exactly as described. There's probably a way to make it work, but it may take a couple of tries.

The same tools to select a directory to copy from apply to removable physical storage.

Click on the current Downloads directory to use the "Set Source Directory" screen to select a directory on removable storage. The exact selection process varies depending on the Android version: on some devices the Sometimes it shows the root of the non-removable storage as well. You man need to click on that and then move down to access other directories in non-removable storage. removable storage is visible as a panel on the screen, on some you may have to move upward through the directory hierarchy and then back down to the storage device. It can't hurt to simply try experiment if it isn't obvious, just don't click Select or Confirm until you see your new books.

...from USB Drives

External physical storage can also be a USB drive ("stick", "thumb drive") that is connected to the device using an "On The Go" cable. This is useful because you can load the USB drive on a PC, and then install books when you have the player in hand, frequently at a location without either a computer or Internet connection. Just plug the USB drive into the device using the cable, then click the current Download directory and use the "Set Source Directory" screen to find the (possibly remembered) drive. When done, you can unplug the USB drive and the player will detect that and revert to Download. Support for USB drives is spotty on older (particularly Android 4) devices. You should test it if you will want to use it.
The same idea applies to easily physically removable SD cards, but these are very rare - it usually requires powering down the device to change SD cards.

Some Android file manager applications may take over from Aesop if you plug in a USB drive. That's a "feature" of the file manager you may want to disable.

...from the Cloud

In the case of Cloud storage, it's mostly a matter of selecting a directory (as for the cases above) on your device. One that is maintained by the Cloud, once you have it set up. However, getting Cloud storage set up to do what you want can be tricky. Here are some tips.

Putting books on to the Cloud and having them automatically downloaded (ready to install) is particularly convenient when dealing with a remotely administered book reader.
Technically… If they're already in Aesop Book format, they can be put directly into AudioBooks — Aesop will handle that correctly. However, depending on the specific Cloud provider, you might find that books appear and disappear unexpectedly, and if you try to play an incomplete download it may yield confusing results. (It could also upload an unintended book to the cloud.) Your tradeoff: convenience vs. consistent behavior.

There are actually a fairly large number (at least 100) of "Clouds" out there, and they're all subtly different. And frequently access to the Cloud from a PC and from an Android device are inconsistent. You may want to spend some time considering your choice of Cloud provider. We can't cover all the cases, but here are some things to consider.

...from Sources Other Than the Internet (CDs and Tape)

Again, a reminder about honoring copyright.

Audio books are also available on CDs and (historically) tape. These can be converted to a form Aesop can handle, but it's technically more difficult.

All books on CD share the common CD audio format, and many PCs that have a CD (usually also DVD and BluRay) drive have an application that can "rip" the CD into a directory on disk. And there is quite a selection of similar tools on the Internet. Actually, most books on CD take a number of disks (at least two or three, and frequently many more). Once the data has been ripped, it needs to be reformatted to some degree or other, because the format you get varies widely from book to book. See Aesop Book Format as discussed above.

In the ideal case, the CD contains book and chapter titles, and file names, and the result is something already in the required format. This seems to be rare.

Slightly more commonly, the metadata is found on the Internet. For music titles, this is very common, but it seems to be rare for books. Many ripping applications will automatically make the Internet search, although not all the applications apply the names well. (One, unnamed here, applies the names (if it finds any) to all except the first track on the disk.)

More frequently there will be no metadata available, and the ripping application will "make up" names from the sequence of tracks on the CD, the current date, and other information it thinks relevant. In the process of doing so, it's likely to include something like Track 1 in the title for the first track, Track 2 for the second track, etc. That works fine until you get to Track 10, which according to computer sorting rules sorts right next to Track 1, which doesn't work out well for an audio book. You want the track numbers to be the first thing that's different in each file name, and to be numbered 01 ... 09 10 11 etc. so they'll sort correctly. If you use Aesop's New Books install screen to do the final installation, it will use Name Normalization to convert short (without zeros) numbers it finds to longer ones (with zeros as needed), which fixes both the track number problem and any one-digit date or time information the ripping tool Most ripping tools do insert the track number as metadata in a way that can be sorted correctly (but Aesop uses file names!) Downloaded books rely on titles, not embedded track numbers for proper ordering, and may not even have the track number metadata filled in. might have used.

Ripping tools don't do a very good job of recognizing "albums" of more than one CD, treating each disk individually. You'll need to rip each disk separately, and it's easier to put each CD's content in it's own directory. Name Normalization will help if you are using a ripping tool that uses the start-time of the rip as the directory name. Otherwise, naming each directory as something like Disc01 Disc02 will give correct results. (Be sure to use two (or three) digit numbers with leading zeros.)

As a warning, many of the CD books we have looked at, if they have any metadata at all, are inconsistent across the length of the book as to how it is applied. The pattern frequently varies from one physical disc to the next. It's best to look at what you get after ripping. If your PC treats the books as a music directory it will show track numbers (if present) and you can make sure that the order of the individual files matches the track numbers.

The fre:ac PC application available for download can be configured to use the date and time you start the rip of the disk to create the file names. Unlike many other ripping tools, it will both auto-start and auto-eject the disk when there is no metadata when it is using date, time, and 2-digit track number for file names. Using a CD drive with a tray that ejects the media (that is, typically not one in a laptop) it is possible to simply change the CDs (without any clicks on the PC) in order, and the result is a collection of directories that will work with Aesop without having to rename any files except the top level directory to provide the book title.

As for books on tape (or records!): it's certainly possible to capture the audio stream from a tape, digitize it, split it into comfortable-sized chapters using an audio editor, and then provide titles and other metadata, but it's a significant effort for an expert with the right equipment and software.

Fixing Book Titles

Assuming the book as you get it has metadata, the odds are that the player will figure out a perfectly adequate title. However, if the metadata is absent, or (particularly with very old recordings) the metadata is unhelpful, you can easily fix an ugly book title. (Occasionally a title is inconveniently long when spoken; fix that the same way.)

On either the Book Inventory screen (item 2) or New Books screen (item 3), click on the book title (the text). The player will enter a new screen. The top line, in white, is what it will use for the title. You can click on that to bring up a keyboard and edit it in the usual way. Further down the screen (below the buttons) up to three additional bits of text are presented that might be a start on a better choice. You can click on those if they look better to you, and they will replace the current text.

If you change the The title created in this way is the directory name. If you are creating books from another computer, you can simply change the directory name to control the title. As long as there's a space somewhere in the name, it will be used as the title. title in the New Books screen, it will be applied when the book is actually installed, which will make the name change permanent. Leaving and returning to the New Books screen prior to doing an install will undo that You can also change the audio file metadata from a computer. We won't go into that here. title change.

More on Deleting Books

Normally, completely deleting books you no longer want is the best solution, but on occasion keeping them is useful. If you click the three vertical dots (⋮) ("More") (#8 on Book Inventory), you can select Archive, and it will put any books you delete in the directory If you have more than one AudioBooks directory, it will create an AudioBooks.old for each writable one, as needed. See Alternate Directories above. AudioBooks.old adjacent to the AudioBooks directory they were previously contained in. You can then copy or move them from there to meet your needs. Generally this is not recommended since you want the space they occupy for new books, but is available if needed. The delete icon changes from "Delete Permanently" (with an "X" over the trash can) to just "Delete" (no "X").

Duplicate Books

It is possible to accidentally install the same book under more than one directory name (with the same title). (Here we mean exactly the same reading of the book.) Should that occur, the duplicate book indicator in the Inventory Screen will contain a number indicating the number of duplicates. The duplicate serves no purpose (it simply takes up space). By repeatedly deleting the book by title, you can delete the duplicates. Field 11 on the Inventory Screen is normally empty, unless duplication should occur.

More things you can do

The next several topics are a collection of things you can do if simply getting books from the Internet, reading, and deleting them doesn't meet your needs completely. Pick and choose what's helpful to you. Don't attach much meaning to the order of things below, because everyone's needs are different.

Combining Downloads Into One Book (Grouping)

Sometimes a book is too big to fit into a single downloadable piece conveniently. War and Peace is a typical example.

Some book providers offer book downloads by individual chapters, rather than providing the whole book. (Some provide both, so if you want a whole book be sure to look deeper in the website to see if that's available.)

If you have a situation where you have a collection of downloaded files that you want to play as a single book, that can be fixed without using a PC. The Aesop player allows you to group a collection of candidate books (in the New Books screen) into a single entry that when installed will be treated as a single book.

Grouping

The procedure is simple: first download all the pieces. These can be anything that Aesop treats as a book, such as single audio files, zip files, or directories containing these. Then on the New Books screen, check the books you want to combine into a single book. Be sure no other books are checked. (This will be easier if there aren't any other books in the download directory, but that's not a requirement.)

Now click the "More" button (#8 on Inventory Screen) and then Group Selected Books. Aesop Player will ask for confirmation, and then combine the checked books into a single new book.

The title will come from the (alphabetically) first book in the group. You can now install (or change the title of) the result just like any other book.

The only thing you need to be careful about is that the book titles need to have the proper alphabetical order before grouping them, because that's the order they will be played in. (If you need numbers, be sure that they have leading zeros if needed.) In most cases the defaults will be fine, but if they aren't, you can change the titles to fix that. Aesop Player will maintain any file extensions.

Ungrouping

Mistakes do happen, so it is possible to ungroup a grouped book back to the individual books by clicking Ungroup one book under "More". Only one book can be ungrouped at a time. Doing this into a download directory with no other books in it is helpful, but not required. The pieces each become a separate book with the usual properties, and those could be restored into a group later.

Advanced: file names for audio and zip files have any blanks in their names removed when they are grouped.

Advanced: If you have installed a grouped book and need to do something to it, you can go to the Current Books screen, select "More"->Archive, and then delete the book from Current Books. That will put it into AudioBooks.old which you can then select as the download directory, and ungroup it there, fix it, and then reinstall it. (After you're done, be sure to reset the download directory, and Archive mode if you aren't otherwise using it!)

Keeping More Books

This is an advanced topic, and requires (minor) use of a PC or file manager application. It's best to come back to this should you find you need extra space for your books.

First, review Alternate Directories discussion above. Given that, if you want to use an SD card for additional book storage, you must decide if allowing other applications to read your books is more important than using the built-in tools for managing books:

  1. If Aesop's built-in tools are more important, use your PC (or file manager application) to make the directory Android/media/github.io.donnKey.aesopPlayer/AudioBooks on the SD card, and proceed using the built-in tools.
  2. If shared access is more important, make AudioBooks at the root of the SD card. You (probably) won't be able to use the managing books tools, but will rather have to maintain the content using a PC.

Be sure to test that this works as expected (there's a lot of variation between devices here). Nothing prevents you from using both AudioBooks directories on the SD card, although it's likely to be confusing to do so.

Books that cannot be deleted using the book inventory screen will be shown with a red "padlock" icon, and attempts to delete (or archive) them will be ignored.

Copy vs. Delete

When installing new books, if the directory you are loading the books from is writable, the default is to move, rather than copy, from that directory to Aesop. The assumption is that you are installing books from the Download directory, and moving things out of the Download directory is usually the intent. There is an option to change that behavior under More (⋮), and if the directory you are copying from is read-only it will just copy rather than move. The copy versus move status is reflected in the icon for "INSTALL". The download icon will have a line above it (mnemonically, the book left in place) when a copy rather than move will occur.

Name Normalization

Occasionally you may run across a book where files were named without the leading zeros in sequence numbers suggested above. The Aesop Player by default fixes any audio file or directory names (except that for the whole book) that it finds containing too-short numbers. The numbers are silently converted to multi-digit numbers (with zeros added as needed). Although we have not (yet) seen a book where doing this would cause a problem (and many instances where it helps) it is possible to disable this by unchecking Normalize Book Names using the "More" button (#8 on New Books)).

Book Progress

The player keeps some information about progress reading a book: the current position (which it needs for restarting after a pause), whether the book has been read to the end, the stop points, and the maximum position read so far. The progress shows up as a time and percentage on the player screen and on the book inventory screen, and the word "Completed" is shown in both places when the book has been read to the end.

Occasionally a book may be left playing accidentally and the stop points feature is not useful for some reason, or you need to move from one device to another. Should that happen, you can click on the time displayed in the book inventory (#9 on Book Inventory), and enter a new position. That can be in minutes (even more than an hours worth) or hours and minutes (as hh:mm)). Setting the time to zero rewinds the book completely. Changing the time this way also resets the "Completed" flag. The window for setting the time also shows the stop points and (after the "-") the maximum position, again as hh:mm. That may be hidden behind the virtual keyboard on some devices: you can close the keyboard ("done") and then restore it by clicking on the new time field.

You can also reset any books to the beginning by checking them in the book inventory screen and then clicking the "Reset" button at the upper right (#7 on Book Inventory). (Check "All" if you want to reset everything.) This also resets the "Completed" flag. (This is particularly useful if you are using the player as a "library book" shared between users.)

Remote Downloads

The Aesop Player supports book installation by either email or a shared file (or both). This is a fairly advanced topic, and one you can completely ignore if you don't need it. The expected use is to simplify adding and removing books on a device you cannot easily touch Or in these days of COVID-19, do not want to expose anyone. once you have done the initial setup.

The general idea is that you send the device a small file (a "request") describing the actions you want done. (Mostly adding and removing books.) After a while, Aesop replies with the results from that request. There's no server involved (beyond the mail or shared file server), and the information you use remains either on the device, or in the mail or shared file server, nowhere else.

This can usually be done while the user is listening to a book. On a very slow device it might make the audio glitch; you can experiment with that on your device. There are also facilities to run the requests at a convenient time if that works better.

Since the typical configuration for devices you cannot touch is a dedicated player configuration, it's assumed to be insecure. See here. Thus you should not use your usual mail account (with all your private business) to update the device.

First, decide what sort of dedicated player configuration is appropriate, and set that up. It will need to be one with networking (probably WiFi) working to have remote access.

Although not strictly required, setting the device up to use one of the Remote Control applications will let you adjust settings and fix any problems that might develop that this process cannot handle. (Any which work for you should be fine) (Yes, you can do everything this does via such an app, but that is often tedious to do, and with this you can do it without having to disturb the user.)

Email

We'll first discuss using eMail. The shared file alternative is conceptually very similar, using shared files rather than mail as a transport.

For Mail, your next step is to create a mail account The mail account can be used to maintain several Aesop devices if that's helpful to you. just for maintaining the device. We've tested this using GMail. You can try it on other mail servers, but since it's a completely new mail account, it doesn't really matter whether you are otherwise a GMail user.

First, create a new GMail account. (Just go to www.gmail.com.) Be sure to create it in a way that Google does not associate it with any existing mail accounts. This may require using incognito browsing or using a different browser, because Google's default is to recognize you're logged in to your browser and assume you want a new address associated with your current account. Once it's created this way, you can use it like any other mail account.

Next, you must mark the account (if it's a GMail account) as a less-secure This is a technical requirement. For good reasons, Google wants you to use a high-security/high-privacy interface for all your personal information. Reading and writing mail without human approval each time is insecure, but for Aesop to read and write mail without the user being involved to approve it, the account must be marked "less-secure". That doesn't make it insecure by any means, but it isn't as secure as Google's own solution. Since this likely is a dedicated player, which must be insecure as described in the Dedicated Player section, a mail account dedicated to this purpose is sensible. account. While logged in to the new mail account, go to https://myaccount.google.com/lesssecureapps and change that setting. Other mail services may have similar features and require similar configuration changes. It might be helpful to name the mail account with something that reminds you that it's less-secure. Something like MyName.ls. There's no functional difference visible to you when you've done this, but Google will remind you in various ways that the account is less-secure... you'll have to ignore that. Google has been known to force password changes or reset the setting We've seen it reset in as little as a few months of disuse. If it does get reset, be sure to switch to the less-secure account before reenabling the feature. on such accounts. They also monitor for logins on new devices, so you may need to OK the login if you start using a new device.

The next step is on the device; you need to provide it with the information about the mail account, so it can both send and receive mail. Go to Settings->Remote Book Settings (it's near the bottom of the main settings screen). You'll see two switches, both off. Turn on the Use Mail For Remote switch. Four new fields will appear. The first is the mail host. Fill that in with the mailer service, e.g. gmail.com. The second is the email address you just set up, like MyName.ls (no '@' and comain). The third is the password you established while setting up the account.

The fourth is optional: it's the device name that the mail reader will look for in the subject line of the mail. If you provide one, only mail with that device name in the subject line will be read. If you don't provide a device name it will simply not check for that. Something like Granny_reader would work. Technical details. This is useful when you use a single mail account to maintain more than one device. You can put more than one device name on the subject line of the message; only the devices with a matching name will act on the request. Devices with no device name will only act on requests with no device name in the subject. Some mail services do not support the features necessary for sending to multiple devices reliably. You will get a warning message if that is the case. You can either use another mail service or never send to multiple devices.

The settings screen will not allow you to leave the screen until you have entered a valid hostname, login, and password (or turn off the feature completely — it won't forget your incomplete work). Once it has the required three, it will check that they work and tell you what's wrong The mail service doesn't distinguish between an invalid eMail address and a bad password, so we can't tell which of those is wrong if there's a problem. if it doesn't. The line under Use Mail For Remote will say "Validated" when everything is set up correctly. (The Validated message may take a little while to come up, depending on the speed of your network connection.) If you send a mail message like the below, you should get a reply within a few minutes. Note that the subject line must contain "Aesop request". You can send from the same account you've just set up.

To: MyName.ls@gmail.com
Subject: Aesop request Granny_reader
// Tell me about the currently installed books
books:books
exit: // optional, stops parsing

Some mailers append some "advertising" after your message. You can either delete it before you send, include an exit: to stop parsing, or simply ignore the errors about things it didn't understand.

A backup copy of the body of the reply is put in the same place that it's put in the shared file case below, whether or not shared files are enabled.

You can use your usual mail interface to remove mail (including the inevitable junk mail) at any time, and you can send (insecure) mail from it as well. Aesop will ignore all messages except those with "Aesop request" in the subject line, and will delete those requests it has completed. (It also doesn't see messages that have been read.)

Having a lot of clutter in the mailbox makes it inefficient: be sure to delete old requests and replies when you are done with them. Look at Sent Mail as well.

Shared File

The shared file option is conceptually similar, except that you send and receive the files as shared ("In the cloud") files. If you set up the file sharing as described section ...from the Cloud section above (with two-way syncing), you can simply write the same text as for mail (just the mail body) into Android/data/github.io.donnKey.aesop/files/AesopScript.txt, and the results will be posted to Android/data/github.io.donnKey.aesop/files/AesopResult.txt, after the Cloud delivers the files. The (long) path to those files a location that should always work. You can change it when setting this up, but be sure to test that you can actually read and write the files at that location with whatever file sharing mechanism you use. Each time you change .../AesopScript.txt, it will be treated as a new request.

Go to Settings->Remote Book Settings (it's near the bottom of the main settings screen), and this time turn on Use File for Remote. There's just one option, the directory to use. The path must be a valid, writable, directory, and should point to wherever your Cloud settings put the shared files. An attempt to set it to empty will cause the default (long) value to be filled in.

You can use both eMail and shared files. They will be processed in the order Aesop sees them, which may vary depending on how the network is performing.

The Request

The request is simply a sequence of lines in the body of your mail message or in the shared file. Each command is exactly one line. Blank lines in the message are ignored. All characters after // are ignored (treated as comments Technically, comments are lines starting with //, or anything after <space>//; the "//" in "https://" doesn't begin a comment. .) The command syntax is chosen to be what you'd get using copy/paste The http:, https:, file: and ftp: commands mostly follow the industry standard syntax for their respective type. Specifically, they have a place for a username and password, which is generally not needed for our purposes. However, those fields will generally (but not always) be used if they're provided. Since including user names and passwords in mail messages is generally not good practice, you should be sure you understand the consequences of using them in a request. We won't discuss those fields further here. If your book source requires their use, they should provide example URLs that should work here. in many cases. Technical details. • To allow easier copy/paste (or using the reply function of a mailer), lines beginning with one or more sequences of "" have those characters removed, since many mailers insert those characters to indicate text quoted from prior messages.
• Some mailers reformat text, potentially breaking the single line per command format here. The Aesop Player makes a reasonable effort to deal with that, but should that not work, you should be able to configure the mailer you are using to send "plain text". On GMail, it's found by clicking the vertical ellipsis at the lower right of the mail composition screen. GMail remembers this setting between messages, so you may need to set or reset it.
• Replying to or forwarding an "Aesop Request" message that hasn't yet been deleted generally works, although you may get ignorable error messages. The exit: command can be used to ignore "leftovers" from prior mail. Using a target device name that doesn't exist (e.g. "sticky") will keep a message from being deleted.

For several commands, there's a need to refer to a specific book. That's done by using a partial title.

A partial title is a quoted string which can be any substring of the title or its directory name; the comparison ignores case. If exactly one book matches that title, it is selected. If more than one book matches, no books are selected. For example if both "Alice in Wonderland" and "Alice Through the Looking Glass" are installed, "wonderland" will select "Alice in Wonderland", "glass" will select "Alice through the Looking Glass", and "Alice" will select neither, because it's not clear which book was intended. If it should happen that you have books where the title of the one you want to change is a substring of another title, remember that you can choose a string in the directory name (if that's different than the title). Worst case, you can rename the longer title (by using the part of the title that's unique) and then rename that book back to its prior value when done.

Some commands allow you to specify a new title for the book. If the new title isn't reasonable (for example is empty or consists of spaces), it will be rejected to prevent creating a book that cannot be found as a partial title.

Commands For Getting Books

( http:URL | https:URL ) ( [ "title" | downloadOnly ] )
The most common command is the one to install a new book from a URL if you're downloading from the Web. To create such a command while browsing, rather than hitting the download button for the book you want, right click it and select "Copy Link Address", and then paste it into the request (be sure each entry is on a separate line). If its a typical book, that's all you need since the install process will figure out the title. If you want to explicilty change the book title, put the title as a quoted string after the URL. If for some reason you want to download but not install the book, put "downloadOnly" after the URL. It will look like one of the below (here we've removed part of the LibriVox URL for readability).
http://www.archive.org/...kidnapped_0807_librivox_64kb_mp3.zip
or
http://www.archive.org/...kidnapped_0807_librivox_64kb_mp3.zip "Stevenson's Kidnapped"
or
http://www.archive.org/...kidnapped_0807_librivox_64kb_mp3.zip downloadOnly

Whether you use "http" or "https" is determined by the web site you're using; you must use whichever the website provides. See also the download manager settings if you are having problems downloading. Files will always be downloaded to the Download directory. See also here.

It is possible that a potential book could be downloaded and then the install fails. A likely reason for that is that the device is out of space. The Aesop player does NOT remove such downloaded files automatically, since it is likely you could fix the problem and then install it later. However, you should be sure that all failed downloads are removed, either by installing them, or explicitly deleting them. An exception to the rule of not deleting failed installs occurs when "Not an AudioBook" is reported. Since there will be no way to find it by name or partial title, it is immediately removed.

A note about older devices. Due to some standards changes that were made after Android 4 devices were released, downloading on those devices doesn't always work for https: URLs. Many https connections will work on those devices, but some websites don't connect, and there are some indications that there isn't a solution available other than changing the website's configuration. We aren't aware of any audio book websites for which this is the case. (Solutions include downloading some other way, contacting the website owner, and getting a newer device.)

ftp:URL ( [ "title" | downloadOnly ] )

The ftp: command does an "anonymous ftp" It will actually take a login name and password as allowed by the standard syntax, but it defaults to "anonymous ftp". If you want to use a user name and password, whoever is providing the service should be able to provide the required information. As we mentioned in a note above, including this information in eMail is a questionable security practice. download of a file. This is useful for services that don't support http downloads, or for which this is more convenient. Like the URL for http: it includes a hostname and path.

Project Gutenberg allows downloading their books, including audio books, via FTP, as in the following example to download the first chapter of the book they catalog as 22984. This is actually a LibriVox recording. ftp://aleph.gutenberg.org/2/2/9/8/22984/mp3/22984-01.mp3 "Peter Pan Chapter 1"

Ftp may or may not work over mobile connections... you'll have to try it. You can search the web for suggestions.

file:filename [ "title" ]

If you already have a book ready to install on your device, you can do that with the file: command. It may be easier to use the downloads:install command in some cases. They do the same thing; use whichever is easier in the particular case.

If you have the full file URL somewhere you can use that directly just as you did with https:. If you need to construct a file URL from a full path name, the first characters should be file://, followed by the full path name. Since the fill path name begins with a slash character, there will be three slashes in a row. (Caution: full file URLs may not always be portable between devices.) If you know the file path as a relative path in "the usual places" ("internal storage" on Android), putting the relative path just after the "file:" (no "/") will work. This is not a standard-conforming file: URL, but Aesop interprets it as relative to the parent of the Download directory.

For example, if you downloaded but did not install the book in the https: example above, you could later install it with:
file:Download/kidnapped_0807_librivox_64kb_mp3.zip "Stevenson's Kidnapped"
The new title is optional. See also here.

Commands For Installed Books

books:books
The books:books command lists the currently installed books. It's the same information as the "Current Books" screen: the total length of each book, the current position, whether it's completed or not (the "C" column) and whether it's writable or not (the "W" column). The usual title is always given. If the directory name differs from the title, -> and the directory name follows. The current (playable) book is marked with a > at the left margin. If a digit appears in the left margin, see here. You can use downloads:rawdelete, below, to remove the duplicates.
books:clean [all] [current]

The books:clean command removes those books that are marked completed and which are in the first minute The assumption is that the user might have restarted a previous book, but recognized the repetition and changed books again. of the book, but excluding the current book. The operand "all" will unconditionally remove all books except the current book. The operand "current" will unconditionally remove the current book. The current book is treated specially so that the user is not surprised by an unexpected change. Thus books:clean all current removes all books. See also here.

books:delete "partial title" ...

The books:delete command removes the book specified by the first argument, which is a partial title as described above. See also here.

books:rename "partial title" "title"
The books:rename command changes the title of the book specified by the partial title to the new title which is the second argument. For example, books:rename "alice" "Alice's Adventures in Wonderland" provides the historical title.
books:reset ( "partial title" | all ) [ <time> ]
The books:reset command changes the current position in the book, and clears the "completed" flag. The first argument, which can be either a partial title or all specifies the book(s) to change. An optional second argument specifies the time to set it to. If the second argument is omitted it is taken to be zero, which means "rewind to the beginning". For example books:reset "alice" 0 rewinds Alice In Wonderland to the beginning. books:reset all rewinds every book to the beginning. Times may be specified as either hh:mm (hours and minutes) or mmm (just minutes). All of 1:01 , 1:1 and 61 specify the 61st minute of the book. See also here.

Commands For Pending Books

When dealing with uninstalled books, they can be found in any directory. Thus there is a "current download directory": the one being operated upon currently. This can be changed at any time. Except for the command to change it, all the "downloads" commands are performed relative to that directory. It initially defaults to the Android default Download directory during each request.

downloads:books
The download:books command prints the list of potential books found in the current download directory. Potential books are audio files and directories containing audio files. It lists the file or directory name, the book title if it's different, and a flag indicating that the default title conflicts with an existing book and thus can't be installed unless a different name is provided when installing it. See also here.
downloads:directory "directory name"
The download:directory command changes the current download directory. The directory name can either be an absolute path (beginning with "/") or a path from the "usual place": relative to the parent of the Download directory. No change is made if the directory doesn't exist. It is permissible and sometimes useful to name AudioBooks as the current downloads directory. See also here.
downloads:delete ( "partial title" ... | all )
The download:delete command deletes entries in the current download directory. It will delete either using a partial title, or all items identified as potential books in that directory. CAUTION: Not everything the Aesop Player identifies as audio books are actually audio books, and those may be used for other system purposes. Be absolutely sure that if you use the all operand that there are only books in the current download directory. Otherwise, delete by using partial titles.
downloads:install ( ( "partial title" [ "title" ] ) | all )
The download:install command installs entries from the current download directory as new books. You can install either all the books in the directory (and Aesop will compute titles) or a single title, where you may provide a new title. Semantically this is identical to the file: when installing a single file, but with a frequently more convenient syntax. See also here.
downloads:group "new title" "partial title"...

The download:group command collects the list of partial titles into a single new book entry named by the new title. This is useful to collect a group of downloads that constitute a single logical book into a single entry that can be installed as a single book. See also here.

downloads:ungroup "partial title"

The download:ungroup undoes what the group command does. It primarily exists to correct errors, but is occasionally useful in making a bundled collection of books into separate books, if the structure allows that. Ungrouping a group that has ordinary files as well as directories will cause the ordinary files to appear at the top level, which may require cleanup. See also here.

downloads:rawfiles

The download:rawfiles exists primarily to help clean up if things go wrong and unexpected files are left on the device. It lists the file names (not just books) in the current download directory. The current download directory could be AudioBooks. Normally the command is not needed, or you would use a file manager directly on the device to do cleanup, but this allows cleanup to be done remotely. The format of the list of files includes quotes so that names can easily be copied (using copy/paste) into the download:rawdelete command. Android 11 limits the directories this command can be used with. Readability. This list can become hard to read in GMail because of the reformatting GMail does. There are a few Chrome Plugins that will render the results in "computer" (monospace) font. We've tried "Gmail Mono" successfully.

downloads:rawdelete "filename"...

The download:rawdelete exists primarily to help clean up if things go wrong and unexpected files are left on the device. It deletes the named files in the current download directory. These are not partial names. They must be the exact name of the file (or directory) to be deleted. The download:rawfiles command provides those names. Use this command with care. It can delete important system files, so make sure that you know that the files you are deleting are really unnecessary. Android 11 limits the directory this command can be used with.

Running and Scheduling Commands

These commands are intended to allow book maintenance to actually occur when the user is not using the device, and to avoid the caregiver having to maintain books at inconvenient times. As noted above, it's likely requests can be run while the user is playing a book.

run:at time-of-day

The run:at command specifies a time of day that the rest of the request is run. If the time time is prior to the time the mail was sent or the shared file updated, it will be run the next day at that time. For example, if you are mailing commands in the early evening, run:at 10:30PM will cause the commands to be run later that evening, run:at 0300 will cause the request to be delayed until 3 o'clock the next morning. All times are in the local time of the device.

The run:at must be the first non-comment line in the file. If there are any errors in the run:at an error will be sent when the Aesop Player first sees the request, and the message will be deleted like any other message.

A time-of-day can either be hh:mm [ AM | PM ] or hhmm. The first form is for 12 hour time (e.g. 5:30 PM or 5:30PM), the second for 24 hour time (e.g. 1730).

run:every [ time-of-day ] <daynames>

The run:every command specifies that the request should be run on the specified days. If the time is specified, the request is run at that hour. If no time is provided it is run at 03:00 AM. It is run on the specified days at the specified time until the request is deleted. If a request message or file contains this command, it is not deleted (or ignored) after being run, but remains to be used again on the next day. This is intended to be used with the books:books command to be reminded of the status of the device.

The run:every must be the first non-comment line in the file. If there are any errors in the run:every command an error will be sent when the Aesop Player first sees the request, and the message will be deleted like any other message.

The possible values for <daynames> are Monday or Mon, Tuesday or Tue, Wednesday or Wed, Thursday or Thu, Friday or Fri, Saturday or Sat, Sunday or Sun, everyDay or every, and weekDay or week. Any combination of these is supported. Note that "day" alone is not allowed.

If you no longer need this request, you can simply remove it from the mailbox.

Miscellaneous Commands

Several of the commands below change a setting. Each of those settings is restored to its default value for each complete request. If you use any of these it's best to collect them near the front of the request so it's easy to include them in each request.

exit:

The exit: command terminates processing the request. Everything past the exit: command is ignored. It is useful to keep a collection of commands you aren't using where you can easily copy them, or to cause mailer-created irrelevant text to be ignored.

mailto:address

The mailto: command indicates an additional mail address to whom the processing status is sent. (It is always sent to the sender of a mail request.) This is attempted even when using a shared file. If the mail connection could not be validated, the error is logged to the shared file, and the command is otherwise ignored.

settings:archive ( true | false | yes | no )

The settings:archive command sets a switch indicating that when a book is deleted, it is moved to Audiobooks.old rather than actually being deleted. It could be reinstalled later from Audiobooks.old in the usual ways. Using this option is not usually recommended because the space is not recovered, but it may be useful in temporarily making a book appear unavailable. This applies to all subsequent deletions for the current request. See also here.

settings:rename ( true | false | yes | no )

The settings:rename command sets a switch indicating that while installing a book, audio files and directories which appear to be sequenced using decimal numbers are renamed so that all strings of digits are the same length. That is, chapter1.mp3 might be renamed chapter01.mp3 so that it plays in proper order with respect to chapter10.mp3. This is normally enabled, but can be used if for some reason the renaming creates a problem. We've never actually seen a problem. This applies to all subsequent installs for the current request. See also here.

settings:retain ( true | false | yes | no )

The settings:retain command sets a switch indicating that when a book is installed, the original copy is not to be deleted. Using this option is not recommended because there will now be two copies of such books, taking up space on the device. This applies to all subsequent installs for the current request. See also here.

settings:mobileData ( true | false | yes | no )

The settings:mobileData command sets a switch indicating whether file downloads (the http:, https: and ftp: commands) are permitted when there is only a mobile data (no WiFi) connection. Since it is possible to send and receive mail via mobile data, a request could be run while there isn't a WiFi connection. To avoid unintended charges, Aesop Player doesn't download files via mobile data unless this switch is set. An error will be reported if a download attempt is made over mobile data unless this switch is set. Other operations are permitted since they don't involve much data and it might prove useful. This applies to all subsequent downloads for the current request, and the command should normally be very near the beginning of the request. Note that the Android system has other settings for mobile versus WiFi data, and those all take precedence. This switch has no effect on those settings; it sets policy only for Aesop.

settings:manager ( true | false | yes | no )

The settings:manager command sets a switch indicating whether http file downloads (the http: and https: commands) are done using the download manager rather than a simple socket connection. This is a potential performance versus reliability decision. Socket connections are slow but simple. Download managers offer the possibility of faster downloads, but they may have idiosyncrasies that keep them from working in all circumstances.

In particular, the default download manager for devices prior to Android 5 does not work for modern https connections due to some standards changes made after those devices were released.

The default is to use socket connections. If you use this command to enable the download manager twice (without disabling it), it will allow attempts to use https on Android 4 devices; this might work with download managers from the play store. We haven't tried it. If download speeds are an issue, you can experiment with this option to see if it helps. (If you're updating a device overnight, it's unlikely that the speed difference matters.) We haven't tested this at all with other than the stock download manager. If you do try using it and learn anything, please do let us know.

This applies to all subsequent downloads for the current request, and the command should normally be very near the beginning of the request.

Examples

Here are a few examples (as mail messages; omit the To: and Subject: if you're using shared files).

Here's the simplest request, with the results following:

To: MyName.ls@gmail.com
Subject: Aesop request avant
books:books
exit:

Here's the result you'd get if just the sample books are installed.

Start of request on: Avant at Fri Sep 04 12:53:14 PDT 2020
books:books
     Books  Total: 0:09:04
      Length   Current        C W Title
     In /storage/emulated/0/AudioBooks
     >0:05:02  0:00:00 - 0%       Alice's Adventures in Wonderland
      0:04:01  0:00:00 - 0%       Hamlet

exit:
End of request on: Avant at Fri Sep 04 12:53:14 PDT 2020
Space on /storage/emulated/0: Using 5517Mb of 12597Mb (43%)

"Avant" is the device name. The current book is "Alice..."; neither book has been started. The line beginning in "In" is the location of the books that follow. There can be more than one AudioBooks directory, so each such directory gets a title like that. The total playing time appears to the right of "Books". The last line summarizes the available space, as a guide to knowing how many books might be added. There is one space line for each AudioBooks directory: if they're on the same storage they will have the same space information.

This next example loads a few new books. The "http" commands are from right-clicking the "Download" button on the Librivox website and selecting "Copy Link", which then can be pasted directly into the message.

To: MyName.ls@gmail.com
Subject: Aesop request Avant
// Granny really liked the sample books; get full versions.

books:delete "Hamlet"
books:delete "alice"

http://www.archive.org/download/alice_in_wonderland_librivox/alice_in_wonderland_librivox_64kb_mp3.zip
http://www.archive.org/download/hamlet_1209_librivox/hamlet_1209_librivox_64kb_mp3.zip

books:books // See what came (and how long)

exit: // This looks interesting, maybe next time
http://www.archive.org/download//aliceinwonderlandinwordsofonesyllable_1604_librivox/aliceinwonderlandinwordsofonesyllable_1604_librivox_64kb_mp3.zip

Here's a reminder to see if books need to be updated on two book readers. You'll get mail every Friday evening, one from each device.

To: MyName.ls@gmail.com
Subject: Aesop request Avant Grampy_reader
// Check to see if either Granny or Grampy need new books every Friday night
run:every Friday 10:00PM
books:clean // get rid of the finished books
books:books // see what's left