Tiny Deathstars of Foulness

February 23rd, 2017

Posted In: MacAdmins Podcast

Tags: , , ,

Yay, podcasts! Chuck Joiner was kind enough to have me on MacVoices. We did a show, now available at

Or if you’d like to watch on YouTube or inline:

November 26th, 2014

Posted In: iPhone, Mac OS X, Mac OS X Server, Mac Security

Tags: , , , , ,

In an earlier post I looked at querying feeds and removing objects from Podcast Producer in a somewhat broad manner. To delete a single podcast (not a feed), you need to first find the ID for the podcast, then delete the corresponding podcast bundle (pdb). Removing assets is one of the only processes with regards to Podcast Producer that isn’t intuitive, and it’s just waiting for someone to wrap these steps into a nice pretty GUI…

To find the ID of the podcast, first let’s query the sql database for the title:

sqlite3 /Volumes/pcp/PodcastProducer/Server/db.sqlite3 'SELECT * FROM episodes' | grep "TITLE"

Note the date and the ID (the big long string) and then browse to /Volumes/pcp/PodcastProducer/Content and then the folder that corresponds to the date obtained from the sqlite3 command. Once opened find the ID (or “big long string”) from the sqlite3 command. Then remove the Podcast Data Bundle that corresponds to that ID:

rm -rf .pdb

Once the entry has been deleted then resynchronizing the library will get rid of it completely. This can be done using the pcastconfig command along with the –sync_library option:

pcastconfig --sync_library

February 11th, 2011

Posted In: Mac OS X Server

Tags: , , , , ,

At some point, you may find that you would like to remove all episodes from Podcast Producer that were brought in using a specific workflow, or based on a specific keyword, a string in the title, a date, or the user that created the episodes. All of these attributes are trapped in the db.sqlite3 database for Podcast Producer. This database is stored in the Server directory of your shared library. Within this database there is a table called episodes. Using that table you can locate all episodes that match the given pattern. To query, you will use the sqlite3 command and identify the database path. A very basic incantation of this command would be to show all of the data for a given table, which in our example would be “episodes”:

sqlite3 /Volumes/xsanVolume/Library/PodcastProducer/Shared/Server/db.sqlite3 ‘SELECT * FROM episodes’

You could then expand this to limit results based on a pattern match. Here, we will have sqlite3 return the uuid for episodes that have a workflow_uuid of AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE:

sqlite3 /Volumes/xsanVolume/Library/PodcastProducer/Shared/Server/db.sqlite3 ‘SELECT uuid FROM episodes WHERE workflow_uuid=”AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE”‘

We could also change it up slightly and look for episodes that were created by a user with a shortname of cedge:

sqlite3 /Volumes/xsanVolume/Library/PodcastProducer/Shared/Server/db.sqlite3 ‘SELECT uuid FROM episodes WHERE author_shortname=”cedge”‘

The sqlite3 commands will return a set of uuids. Once you have a list of uuids, you can go into the Content directory in your shared library and you will see each listed there based on the date they were created (inside of their date folders). Date is also a field in the sqlite3 database, but given the ease of recursively performing tasks I’m not sure it will be required. The uuids will have a .prb extension and you can then piped paths with the added extension out of your command, into an array or use them for some other action, thus allowing for archiving, removing and even performing further tasks to the assets that live within the actual bundle, including hooking into transmogrifier to link to Final Cut Server.

August 26th, 2010

Posted In: Mac OS X Server

Tags: , , , , , , , , , , , ,

When using Podcast Producer, the Podcast Capture client application will ask each user for a username and password.  Armed with the authentication credentials.  Once a podcast has been captured then the user will be provided with a list of workflows that they have access to.  But where are these configured?  They can be added and removed from Server Admin.  And each can have a user, users, a group or groups that have access to use them.  By limiting access to each workflow, based on the Workflow ACL, you can then limit who can access to different blogs, who can use various automations and even who can publish to an iTunes U account, or a different third party service if you’ve scripting against a given API.

In order to set these Workflow ACLs, open Server Admin and choose the Podcast Producer entry in the Server Admin sidebar, from the appropriate server.  Then click on the workflow you would like to limit access to.  By default, all users have access to all workflows.  Click on the Allow Access to…for the following users and groups radio button and then click on the plus sign (+).  Then from the floating list of users and groups, choose the object you would like to grant access to and then drag it into the list.  Then click on the Save button and you will save your changes.

August 21st, 2009

Posted In: Mac OS X Server

Tags: , , , , , , ,