Moving A Podcast From SoundCloud to Anchor.fm

Before digging in a few clarifications on names. You’re reading a blog post on Anchor Hosting which is a managed WordPress web host. Today we’re talking about Anchor which is a podcasting platform service by Spotify. Got it? Anchor Hosting the web host is in no relation to Anchor.fm the podcasting service.

The podcasting service Anchor by Spotify has been gaining popularity due to its free-to-use business model announced back in May 2020: https://blog.anchor.fm/updates/why-podcasting-is-free-with-anchor. I know this to be true by the fact that I now get weekly inquiries from people attempting to reach out to Anchor.fm support only to get the following reply from myself. Haha, if you need podcast support then please reach out to the correct company.

Free podcasting hosting is a no-brainer.

Why pay for podcasting hosting when you can get it for free? Well, that’s the marketing plan behind Anchor by Spotify. They want you to switch your podcast over to them and then maybe get a few of those podcast owners to start using some of Anchor’s monetization services: https://anchor.fm/ads. That’s where they make money.

Switching podcast providers isn’t for everyone.

If you have an established podcast then switching may not be for you. But if you’re just getting started or maybe your existing system is already jerry-rigged then moving to Anchor by Spotify might be a great option. I recently moved a large podcast from SoundCloud over to Anchor by Spotify. This will walk through the steps I took along with a few suggestions for your WordPress site.

The right and wrong ways to host a podcast with SoundCloud.

The correct way to use SoundCloud for podcast hosting is outlined on their blog: https://blog.soundcloud.com/2018/05/30/host-podcast-soundcloud/. The idea is you upload tracks to your profile and include some of these to a public RSS feed. That feed will be in a format that you can submit to iTunes and other podcast distribution services. In this ideal situation, you should be able to start a new Anchor account and import your SoundCloud RSS feed. Then when you’re ready to switch services, set up an RSS redirect to Anchor.fm as described here: https://help.soundcloud.com/hc/en-us/articles/115003564088-Redirecting-your-SoundCloud-RSS-feed-to-another-host.

In years past SoundCloud used to have an API where you could retrieve a download link per each track. This had the advantage of hosting the podcast yourself on a WordPress site while leveraging SoundCloud for podcast storage. This model appears to be dying out. SoundCloud no longer allows you to register a custom app for API use: https://soundcloud.com/you/apps/new. In addition, my existing podcast has been hitting Soundcloud’s rate limits: https://developers.soundcloud.com/docs/api/rate-limits#global-limit. This has meant that people listening have been getting sporadic playback errors.

Moving from SoundCloud to Anchor.fm is doable, it just takes some patience and perseverance.

There is only one method of importing to Anchor.fm: give Anchor.fm your existing podcast RSS feed and let Anchor.fm do the import. The audio files in my podcast feed were linked to a PHP script that would dynamically retrieve the real SoundCloud URL via the SoundCloud API. Well, the Anchor import quickly overwhelmed the SoundCloud rate limit. That meant I had to keep retrying. It took 4 days of retrying before Anchor was able to fully import the old podcast episodes. If your podcast fails to import everything and you don’t see a “Retry all” button then reach out to Anchor.fm’s live chat support. They can retry on their end.

For archival sake, here is an overview of how I was serving Soundcloud audio files directly in my podcast feed. On my web server, I had the following NGINX redirection rule.

rewrite "^/stream.mp3$"

This would allow me to serve files like /stream.mp3?track=1400267620" which would then be powered by stream.php which would talk to Soundcloud and redirect to the actual mp3 file on their system.

<?php

$soundcloud_client_id     = "#############################";
$soundcloud_client_secret = "#############################";
$track_id                 = $_GET['track'];
$audio_url                = "https://api.soundcloud.com/tracks/$track_id/streams";

$curl     = curl_init( "https://api.soundcloud.com/oauth2/token" );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, array( 'client_id' => $soundcloud_client_id, 'client_secret' => $soundcloud_client_secret, ">
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec( $curl );
curl_close( $curl );

$auth = json_decode( $response );
$curl = curl_init( $audio_url );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [ "Authorization: OAuth {$auth->access_token}" ] );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec( $curl );
curl_close( $curl );
$audio    = json_decode( $response );

header('Location: ' . $audio->http_mp3_128_url );

Redirection all old RSS feeds to new ones.

This will make sure that your current subscribers will be seamlessly moved over to the new podcast feed. Your redirection methods may vary depending on how the feed was previously being handled in my case the RSS feed was being generated by my WordPress site. I decided to add a redirection rule to the web server.

Redirection rule within Kinsta to redirect old podcast RSS to new Anchor.fm feed.

I was also using Google Feedburner to redistribute my feed. This also needed to be updated to the new feed and then deactivated in order to enable redirection to the new Anchor.fm feed.

Swapping out Google Feedburner for new Anchor.fm feed
Deactivating Google Feedburner
Confirming deactivation of Google Feedburner and enabling redirection to Anchor.fm

Embedding Anchor audio player on WordPress website.

Anchor.fm only allows individual episodes to be directly embedded. For each episode, you can either copy a link or an embed. On WordPress websites, you’ll need to use the “Copy embed” option as the link option will not translate into a usable audio player.

In the WordPress editor paste the embed code inside a Custom HTML block.

This will show up as a player on the front end.

Repeat these steps for all past episodes and that will complete your switchover process.