We’re happy to announce the release of a brand new version of Vocal that represents the past several months of work on the project. While the Internet Archive integration (the first step of our implementation of the Podcast Archival Project we wrote about on this blog back in November) is obviously the most unique feature, we want to begin by talking about some of the other big changes and important bug fixes.

First, there is a new theme switcher to let users pick between the light and dark themes. On elementary OS, users will have the trademark purple headerbar in the light theme, or have an all-black dark theme as an option. On other Linux platforms, users will be able to pick between the standard light and dark GTK themes that are part of their active theme. This has been a long-requested feature, and one we know will have positive health benefits to our users (goodbye, eye strain!), so we hope people like that new feature.

Vocal’s traditional light theme.

Vocal’s new optional dark theme.

Another big fix has to do with the episodes list. One of the biggest requests from users has been the ability to sort the episodes in a podcast feed in both reverse-chronological (newest episodes first) and chronological (oldest episodes first) order. This is useful for keeping up with the latest content from podcasts you’re subscribed to, but is also handy for starting at the beginning when discovering a new podcast for the first time. Along with this feature addition comes an improved user experience in regards to episode sorting, and fixes several bugs that were all caused by the old implementation.

A number of community members have contributed fixes this release, and we’re grateful for their time and expertise! Improvements from the community include adding support for Atom podcast feeds, improved search results throughout the app (both your local library and the integrated online directory), and a metric ton of under-the-hood fixes to provide a faster and more stable experience.

We’ve had a tremendous amount of help this release with translations as well, so users on non-English systems should find the app localized better than ever! If you notice parts of the app that aren’t localized, and you are multilingual, please consider helping us with translations. It’s a fast, easy way to get involved with the project and make a real difference.

Internet Archive Integration

To our knowledge, Vocal is the first app to ever bundle Internet Archive uploading directly into a podcast client. Those of us who contribute to Vocal are not only obsessive podcast fans, we’re also big believers in free software and the public commons. We believe that podcasts are the most democratic form of audio and video publishing ever created, and we want to do our part to not only preserve that distinction but also help keep this high-quality, freely available content around for as long as possible.

The new upload success message for Internet Archive uploads.

I want to re-iterate one point that we get often asked about: how can users legally redistribute and upload content that doesn’t belong to them? And the simple answer is this: they can’t. Most podcast feeds are not freely licensed, and therefore they can’t legally be uploaded to the Internet Archive. In those cases, Vocal does not allow the uploading of copyrighted content.

But in cases where Vocal detects a Creative Commons-licensed podcast feed, it enables the native uploading features. Users can also manually override the setting for individual podcast feeds that they know to be liberally licensed. To do so, use the option available in the podcast’s edit menu. There is of course nothing preventing users from trying this on copyrighted feeds, but they do so at their own peril (content uploaded to the Internet Archive is “tied” to their accounts) —they risk the same penalties (removal of content, account bans, etc.) that they would get if they tried to upload any other copyrighted or legally protected work to the Internet Archive.

So how does it work?

Users must first create an account with the Internet Archive, and must obtain two special codes in order to enable archive uploading in Vocal (in technical jargon, API keys). Don’t worry, it’s really easy, and Vocal walks you through the whole process. After pasting the API keys into the Vocal settings, users are ready to start uploading to the Internet Archive.

For an automatically detected Creative Commons feed, each episode will have an upload button visible in the episode details area. Clicking that button either prompts you to download the episode, or if it’s already downloaded, begins a very simple procedure to upload the episode to the Internet Archive.

The process is typically as quick and easy as just three simple clicks. First, the user is prompted to confirm the pre-populated podcast information, then they have to agree to one last legal warning, and finally they are presented with a spinner as it tries to upload the file to the Internet Archive. If all went well, you’ll see the success message pictured above. If not, you’ll be presented with a warning message and asked to try again later.

A Few Compromises

Podcast episodes get uploaded to the Internet Archive in a folder with the same name as the title of the podcast. The podcast is then listed as a publicly searchable directory belonging the users’ account. It’s worth noting that our original plan was to upload all content under one account (belonging to Vocal), but after working with the Internet Archive team it was determined that this was against the terms of service due to it technically being “account sharing.” We then wanted to create a single collection that all podcasts could be uploaded to, but we learned that it wasn’t an option for us to do that (there are certain rules and a minimum threshold that must first be met before the Internet Archive will create a collection, which is a manual process that has to be performed by a staff member, and even after that’s done there is a permissions issue due to the fact that accounts can’t be shared). We also originally wanted to store complex metadata about each episode in a podcast, but after working through several variations of the uploading process we realized that the best way for it to work is to store complex metadata about an entire podcast itself, and then let the individual episode files speak for themselves. Doing it this way allows the entire podcast feed to be stored in the same directory, and episodes easily playable one after the other. If it weren’t done this way content would be strewn about the entire Archive, and finding all the episodes for a particular podcast would be needlessly cumbersome for the typical person.

At the end of the day, we want to help facilitate archiving and retrieving as much podcast content as possible. While our solution isn’t a perfect one, we think we’re creating something that dramatically improves the workflow in terms of both ease of use and time investment, and makes it incredibly easy to get this Creative Commons-licensed content preserved for posterity.

Closing Thoughts

We hope you all have a chance to take this new version of Vocal for a spin. It’s available to download immediately from AppCenter on elementary OS, and the Flatpak version will be updated very soon.

Please be sure to send your feedback to @NeedleThreadCo on Twitter, and report any issues or feature requests on our GitHub issue tracker. Enjoy, and go save those podcasts!

To find out how to get Vocal on your platform of choice, please visit our project homepage: vocalproject.net