Provide keywords in feed [was: How to add categories to podcast feed?]

Hi!

I’m wondering how to add categories to a feed. Currently my feed just shows “Sports & Recreation”, hence also in e.g. player.fm it shows up just with “Sport”.
I think this is important because people might do a keyword search and podcasts will only show up if they are listed appropriately.

I found out that other podcast very well have a lot of categories.
I remember that somewhere in the settings there was a pulldown but I even can’t find this anymore although I clicked through all settings (although the pulldown had very limited options to select).

How can I add/manage categories of my feed?

Regards,
Bernhard

Hi Bernhard,

you can change the categories of your podcast under Podlove --> Podcast settings --> directory --> iTunes categories.

I’m using Podlove in German but I think these are the names in English.

Ok, I found it. Unfortunately, there is a very limited choice.
Is there no way to add some custom tags?

I found this on other podcast, e.g. on player.fm (s. attached screenshot).

Regards,
Bernhard
tags

Nobody knows how to add tags to the podcast feed (except this very limited itunes selection)?

Hi Bernhard,

I don’t know where the tags are from. You could ask player.fm. But the iTunes categories are defined by Apple.

Meanwhile I looked at several feeds to find out how other podcasts provide keywords.
The key is that they provide an <itunes:keywords> tag which contains a comma separated list of keywords. These keywords then appear on the podcast portals (e.g. https://player.fm, podcast.de).

Unfortunately, a search within this panel reveals that exactly this feature was removed in 2.4.0 (see Release 2.4.0).

Is it possible to discuss this again?

IMO keywords are essential for a podcast to be found by listeners.

Regards,
Bernhard

Here is what player.fm says:

image

Feels icky to go against specification and Apple/iTunes removed them, which is why the Publisher removed support for the tag. I guess some clients/directories still use this data as it’s still in some feeds and nobody has proposed a replacement for it yet. I tend to lean towards following the spec, however I’m not totally convinced here.

You could also use WordPress hooks to inject it into the feed yourself. https://github.com/podlove/podlove-publisher/blob/master/lib/feeds/base.php#L205

add_action('podlove_append_to_feed_head', function ($podcast, $feed, $format) {

    $keywords     = "my, keywords, here";
    $keywords_tag = sprintf('<itunes:keywords>%s</itunes:keywords>', $keywords);
    echo "\t" . apply_filters('podlove_feed_itunes_keywords', $keywords_tag);
    echo PHP_EOL;

}, 10, 3);

Ok, I understand your concern about the specification breach.
Thanks for the hint, I’ll add it manually as suggested. I think it is important to have keywords even though Apple removed them.

I created a super simple WP plugin to set such keywords.
Maybe somebody is interested:

1 Like

Thanks for your effort!

Spotify even lists the keyword tag in there specifications for each episode: https://podcasters.spotify.com/terms/Spotify_Podcast_Delivery_Specification_v1.6.pdf
i think it would be great to have the option directly in podlove to choose wich specification you wanna follow.

I used ur plugin and also added a function to add the episodes tags to the keewords for each episode in the rss feed.

here is the code maybe you can add it to your great plugin and also include a checkbox in the settings :slight_smile:

add_action('podlove_append_to_feed_entry', array($this, 'set_feed_entry_tags'), 10, 4);

/*! This method actually adds the entry keywords to the feed. */
public function set_feed_entry_tags($podcast, $episode, $feed, $format)
{
    // get keywords
    $post_tags = wp_get_post_tags($episode->post_id);
    if ( $post_tags ) {
        foreach( $post_tags as $tag ) {
        $keywords.= $tag->name . ', ';
        }
    }
    // create full keyword string
    $keywords_tag = sprintf('<itunes:keywords>%s</itunes:keywords>', $keywords);
    // output keywords
    echo "\t" . apply_filters('podlove_feed_itunes_keywords', $keywords_tag);
    echo PHP_EOL;
}

Hi!

Are you able to file a pull request on Github?

regards,
Bernhard

I just pushed the new version 1.2 to Github which includes your suggestions.

Regards,
Bernhard

sry didn’t see that reply and i’m not yet much into github so thanks for your update

1 Like

I was unable to get the keywords to save in the admin page.

Is there a way to hook into podlove_append_to_feed_entry?

I tried this, but I think I am missing some way of attaching it to a specific episode.

add_action('podlove_append_to_feed_entry', function ($podcast, $episode, $feed, $format) {

$keywords     = "keyword1, keyword2";
$keywords_tag = sprintf('<itunes:keywords>%s</itunes:keywords>', $keywords);
echo "\t" . apply_filters('podlove_feed_itunes_keywords', $keywords_tag);
echo PHP_EOL;

}, 10, 3);

Though this standard was dropped by Apple, it is still used in feed headers and in feed items for sorting and seo reasons, such as keyword searching on podcast directories. Nothing replaced it, so it is just used by several non-apple directories still. Some places use the header, some places use the episode, and I need these tags in the episode output of the rss for Google.

This should be something that can be optionally enabled in the Feed Head and Feed Episodes in Podlove. Just because apple no longer uses it is a pretty rough call seeing as most everyone else still does and PodLove feeds get cruddy SEO over it.

This implementation looks fine except the last parameter should be 4, not 3. You can access episode data through the $episode variable or custom post meta using get_post_meta($episode->post_id, 'my_episode_keywords');.

Do you have any references/documentation for what directories/services rely on this keyword information?

1 Like

The biggest reference I have is in the behavior of Google Podcasts. I am looking at similar podcasts, and looking at what google parses from those feeds for their directory searches. Google omits the keywords in the feed header, the crawler strips them, but the crawler parses the keywords in the episode. By searching podcasts on the same subject using the keywords from their episodes, I can pull up podcasts that are not using the keywords in their title, description, or category. I.E, I can find the podcast I checked for reference using a keyword that exists no where but in itunes:keywords alone.

I am also seeing other sites use these tags for searching their directories in similar fashions.

It seems that apple dropped the standard, but many did not, as it provides a pivotal function to how they list podcasts in their directories and searches.

Thank you for your answer.

It would be nice for this to be implemented for episodes and for feeds directly through the dashboard.

I understand there are many other priorities, but this would be a nice one for the few who want if explicitly as an advanced module to enable or the like.