This post started life as a quick description of what needs to be done in order to submit a podcast but has since devolved into the poster child for why developers hate working on Apple’s software and platforms. Getting from ground zero to a successfully submitted podcast was a journey that didn’t need to take so many twists and turns. Well, at least Apple is consistent with how they treat their developers, I guess that’s something.

I’ll start this article with where to start looking for podcast information, then go through the issues that you might encounter, and then finally walk you through creating an Apple account (including the all important 2nd part of creating an account) through submitting your podcast URL to Apple/iTunes.

Podcast Validators

Apple recommends the following validators:

While you can use them they don’t catch everything and may give you a false sense of security. It seems that Apple’s Podcast support team uses this URL (not the Apple Validator that they require all their customers to use):

Even if all these validators give you a “this podcast validates successfully” message thats not to say that after you submit your podcast to Apple that Apple wont mysteriously delete it before it can be published. Deleted because it fails some internal metric that no validator enforces. To add insult to injury Apple wont tell you why they deleted the podcast. It will just vanish from the Podcasts Connect console.

Some other Apple documentation that you may want to peruse:

  • Podcast Connect Help Page
  • RSS tags for Podcasts Connect
    • Pay close attention to the list of tags here – Apple and all the validators above will validate your feed even if some of these tags are missing and then as mentioned Apple will delete your Podcast submission with no notice
  • Common Apple Validator Errors – as in, what Apple does wrong

    I mentioned above that the validator at podcastsconnect.apple.com does not properly validate podcasts. Yeah, that will set you back precious time.

    What happens is that you will think that your podcast conforms and submit the Podcast. Then you’ll wait for a few days. Then you will get curious and check your Podcasts Connect dashboard to see whats going on and…. your podcast will be gone. You will have received no notice – no emails – nothing…. so you will resubmit – again seeing that Apple tells you that your feed has validated…. and the process repeats. I dont know how Apple validates a podcast. To be quite honest, I dont think its a “podcast validator” at all. It checks for something but Apple doesn’t tell anyone what exactly that might be.

    Given the above facts you must proceed with caution. Hopefully the unfortunate trail-and-error process that I experienced will help you get your podcast into iTunes faster by helping you to avoid the following pitfalls.

    Podcasts Connect is Broken

    What I mean by this is that – aside from all of the Apple “validation” issues is that an Apple user’s Podcasts Connect console is supposed to provide useful information. Refer to this piece of Apple Documentation:

    It quite clearly implies that once you submit a podcast that the podcast in question will remain in your Podcasts Connect console so that you may review its status. This doesn’t happen. Or at least, it hasn’t happened the past 50 times I tried it. If the podcast is not up to par it is summarily deleted and nothing remains of it. Not even a courtesy email.

    Further evidence of the “broken” label is the following text from Apple:

    After your RSS feed passes the initial validation (for example, the RSS feed contains all of the recommended tags for the iTunes Store), Podcasts Connect displays the Prepared for Submission status along with a preview of your podcast.

    Note what this says as it quite clearly implies some level of validation!!!

    Successful Testing via the iTunes App Doesn’t Mean Anything

    Apple describes a method of testing your podcast with the iTunes desktop app prior to submitting your podcast to them. I suppose this should be the gold standard hands-down surefire method of validating a feed. Thing is, it doesn’t mean anything if it works. Even if your podcast plays via this method inside of the iTunes app that doesn’t mean you are assured a successful submission. As in my case, Apple can still delete the submitted podcast for unknown and non-communicated reasons.

    Refer to this to learn how to test your podcast within the iTunes app:

    Note that as I’ve already mentioned, the validators themselves are practically of no use as Apple can still delete the podcast even if the validators claim the podcast is well formed.

    The Webmaster Email Address is not just an email address

    If you have only an email address as the content of your <webmaster></webmaster> tag Apple will validate your XML successfully. This is wrong. Your webmaster email address is not just a normal email address because according to “podcast rules” it needs to be accompanied by a “real name”. The format is this:

    • person@domain.com(your name)

    Where “your name” is the “webmaster’s” name.

    In addition Apple’s own feed example is completely missing the webmaster element and their RSS tags for Podcasts page omits it as well. So…. they don’t document it and they ignore it when validating a feed but they sure as hell delete your podcast if its missing.

    Podcast Invalid Duration

    Apple gets this wrong too – they will successfully validate your feed even if one of your podcasts is missing a duration. This one is more obvious to developers and reflects a mistake on our part – but also on Apple’s. Thanks for the help, Apple.

    Be sure to insert a duration into your <itunes:duration></itunes:duration> tags. Better yet, build some validation around your front-end (or back-end as the case may be) to prevent a missing duration. Below is the acceptable formatting:

    • HH:MM:SS, H:MM:SS, MM:SS, or M:SS (H = hours, M = minutes, S = seconds)

    Is this really an Apple problem? Yes and No. If they claim to “validate” something they should catch this. But also we developers should be smarter.

    Dont use HTML in your podcasts

    Here’s another thing that gets by Apple’s podcast validator – HTML! I guess that makes for invalid markup, who knew? Apple certainly didn’t! I blame the root cause on the WordPress front-end from which our podcasts derive their content. Gee Apple, when I asked you if my feed looked OK I figured you’d catch this one!

    Anyway, Apple wont show you the error but if you see this from some other validator then you know what it means:

    Undefined itunes_summary element

    You’ve got HTML in your content – remove them or wrap them in CDATA.

    Invalid Characters

    Apple doesn’t care if you send it invalid characters; it will gleefully accept your Podcast, label it “conformant” and lead you to believe that your podcast will magically appear within iTunes in short order. Somewhere within the bowels of the Apple Podcast dungeon is an overpaid Project Manager who hired some douche to half-ass create their “validator” and then when the PM fired the guy the QA team shrugged their shoulders and figured the project was done. Well, that’s what my imagination tells me. So, be warned, make sure none of these characters are in your feed’s content (or if you must, use the entity equivalent):

    • &, < and >

    It is true that developers should know better and build a web service that strips/replaces these things. Sure. Is it too much to ask Apple to create a “validator” to look for this? Apparently, yes, yes it is.

    Missing Title Tag

    This particular item bit me – our contractor missed adding the Title tag to our podcast item nodes. Apple’s validator didn’t catch this. In fact, no validator caught this. As a result our QA process gave the podcast a green light. We submitted the feed, Apple happily accepted it after “validating” it successfully. We waited and then poof it was gone from Podcast Connect with no message or warning.

    After many emails to Apple support they finally informed me of the missing tag. I say finally because weeks and many messages went by before they told me why they kept deleting our client’s podcast. Recall that all the validators that Apple asks us to use validated the podcast, including Apple’s own “validator”.

    Moral to this story

    • Devise a test plan that requires a tester to look at the XML to ensure that it matches Apple’s examples
    • Realize that Apple’s examples might be incorrect (i.e., missing the webmaster element)
    • Take all podcast validators with a grain of salt (ask yourself “who validates the validators?”) – trust them just a little, trust your own eyeballs more (see the previous bullet point)
    • Be up front with your team: Identify the risks
      • In our case we were using WordPress as the CMS – it introduces things to your content that you need to be aware of
      • Make sure your team has the topic of conformant XML top-of-mind
      • Make sure you devise a test plan that does not rely too heavily on the various podcast validators that you might be using – they will validate a feed that Apple will summarily delete without notice/feedback/useful error message

    Where to Start – Acquiring an Apple ID

    OK, you’ve created your podcast, are sure that it is conformant and want to submit it to Apple. The following bit of information, from what I can tell, is not documented anywhere by Apple. It is not enough to create an account, there’s another step after that that really counts.

    First thing is first: go to Apple.com and sign up for an apple ID. From what I have seen doing this is somehow not how Apple expects people to use iTunes. OK, thats fine, nonetheless

    iTunes Store Account

    You start submitting podcasts by logging into this page using your Apple ID – podcastsconnect.apple.com. The first thing you may encounter is the message that “Podcasts Connect requires an iTunes Store account”.

    podcasts_store_account

    The above message is because the Apple ID you are using has not been previously used with the iTunes Store. To start resolving this start iTunes and then login with your Apple ID by clicking the “User” icon.

    podcasts_store_account_0

    After you login with your new Apple ID you will see the screen shown below.

    podcasts_store_account_0a

    Click the “Review” button seen in the above image. iTunes says that its “Accessing the iTunes Store…”. It eventually displays the “Welcome to the iTunes Store” screen which is shown below.

    Interestingly you’ve already created your Apple ID yet the message presented to us here in iTunes says “To begin creating your Apple ID, click continue”…. so let me get this straight, Apple, in order to create my Apple ID I need to first create one so that I can log into iTunes using that ID so that I can then create an Apple ID. I guess there must be multiple workflows at play that are oblivious to each other (if I had a penny for every little detail that Apple misses throughout its suite of development tools and customer-facing portals…) Anyway, lets do as Apple says and click the “Continue” button from the “Welcome” screen.

    podcasts_store_account_0b

    After clicking the “Continue” button in the above screen the Terms and Conditions / Apple Privacy Policy will appear. You’ll need to click the “I have read and Agree…” checkbox which will enable the “Agree” button. Click the “Agree” button.

    podcasts_store_account_0c

    At this stage iTunes will ask you to review your Address and billing information. If all looks OK then click the “Continue” button again.

    (Screenshot withheld, its got CC info and contact info, etc, nothing terribly interesting even if the personal info is blacked out….)

    After a minute or two of iTunes “Accessing the iTunes Store” you will finally see a message that says that your Apple ID is “now ready to use with the iTunes Store”. At this point you can again log into PodCasts Connect to start your podcast submission.

    podcasts_store_account_0e

    Submitting Your Podcast

    Once again, visit the Podcast Connect page at podcastsconnect.apple.com. That URL will redirect you to the iTunes Connect login page. After you authenticate there you will be taken to your iTunes Podcast page.

    podcast_01

    This is the screen you’re presented with after you login to iTunes Connect:

    podcast_02

    Test Your Podcast

    Paste your podcast feed into the URL field – you’ll then see the “Validate” button light up – click it to “validate” your feed.

    podcast_03

    You can see in the image below that my feed validated – but, did it really validate? You will never know until your podcast a) disappears, b) appears in iTunes. In any case Apple dubiously claims that its ready for submission.

    podcast_04a

    The final step is to submit the podcast – when successful you will see this screen:

    podcast_05

    And now, you wait. Good luck!