Premium Podcast Problems

You’d think that someone who comes on this forum to ask a question would actually search properly first – and then s/he’d see that I’ve recommended the scanner frequently.

But the scanner can’t – and doesn’t – pick up everything. In fact, there’s one thing it is known to get wrong, so it’s interesting that it apparently passed everything on GoDaddy!

And, yes, if you were to search properly on this forum, you’d see that I have addressed that before too.

As I said before, you’re much more interested in being right than being helped.

So what do I try next? GoDaddy say they can help me if I can give them the slightest hint as to what they should be looking at. As of now I still don’t know anything about what’s causing my problem.

I just tried disconnecting from S3 and CloudFront, and tried serving the RSS feed and a sample podcast episode from my regular web host. Still didn’t work, so I guess I can eliminate the link to those external services as the problem.

In an attempt to replicate the problem without using an iOS device, I’ve subscribed to my RSS feed using a normal reader app, which has facility for header authorisation. It can locate the RSS feed using my username and password. If I click the link to the episode so that it shows up in the browser part of the RSS app, it works perfectly. However, if I try to download the file, it fails just like all the mobile podcast apps. I had been wondering if the mobile problems were down to the need to put username and password in the URL of the RSS feed, but the RSS reader app suffers from the same problem and doesn’t authenticate in the same way.

So to recap:

It’s not a problem with S3/CF because the problem persists when they aren’t used.
It’s not a problem specific to GoDaddy because if it is host related, it’s something UK2 also do.
If it is a host problem, it’s either avoidable or effects everyone who uses s2member on that host.
It’s not how I’m linking to mp3 files because those links work perfectly when viewing in a browser.
It’s not that the server can’t handle this method of authorisation because it works in every other context.
It’s not interference from other WordPress plugins because I tried it with everything turned off.
It’s not interference from a theme because I’ve tried it with different themes.

After following some information about Wordpress and the REST API, I’ve altered my .htaccess file to include the following:

BEGIN WordPress

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.)
RewriteRule .
- [e=HTTP_AUTHORIZATION:%1]
RewriteBase /
RewriteRule ^index.php$ - [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]

END WordPress

That replaces the couple of lines of code I mentioned earlier. It looks like a better way of doing things, but it still isn’t fixing the problem.

I’m considering getting a dedicated server so I can administer it myself, but without any specifics on what GoDaddy, UK2, and goodness knows how many other web hosts do to stop s2member from working, I don’t know that I won’t repeat the same problem myself.

Last attempt at something for the day. Totally new web host, totally new installation of WordPress, totally new install of s2member done through the add plugins interface of Wordpress, new download and install of s2member pro, not a single change made to the Wordpress installation other than the addition of s2member, not a post, nothing. Didn’t have to make any changes to the .htaccess file. Didn’t even try to configure S3 and CloudFront, just did it all off the main hosting server, and… same problem. Couldn’t get it to work any better than before. iTunes reads the RSS feeds and downloads the episodes without a problem, and it’s the only app on the planet that does.

But this doesn’t feel like a waste of time. I know that it’s not a problem with my hosting, or Wordpress installation. Is it possible that the feature just doesn’t work? The problem persists when I eliminate absolutely everything I can.

Is anyone out there successfully running a protected podcast feed using s2member? This is the fun you have when there’s no official tech support I suppose.

At this point I’m at a total loss as to what to do next. I don’t want to dump s2member because it otherwise works perfectly and I have a number of subscribers I don’t want to have to try to move to another platform. I don’t want to ask for my money back, but the product doesn’t do what it says. Even then I can’t move back to the non-pro version because I need the Stripe integration. GAH!

Am I really looking at paying a freelance developer to sort this out?

Little update: Feed works great in iTunes, downloads all episodes just fine. RSS readers won’t even see the RSS feed and keep asking for my username and passwords. If I enter that username and password when putting the URL of the RSS feed into Safari, then open it my RSS reader when Safari offers to do it, then it will read the RSS feed, but not open any of the episodes. Overcast will see the RSS feed when I include the username and password in the URL, but it won’t download any of the episodes. The Podcast app doesn’t seem to need the username and password in the URL because it will ask for them, and it will see the RSS feed when it gets them, but it won’t download any episodes.

It feels like the problem lies with that second authentication, when the user tries to download the protected file from the protected RSS feed.

Today I managed to find a podcast app that actually spits out an error message when something goes wrong. It is a 401 Unauthorised error. It is when the app goes to download the mp3 that it fails authentication.

I spent some time looking into potential problems with mod security, but have ruled that out as a problem because of how the RSS feed can be accessed without a problem, and because everything continues to work perfectly in iTunes. I suppose a work around would be to have a protected rss feed link to unprotected mp3 files, but that’s just madness.