[vlc-commits] [Git][videolan/vlc][master] 2 commits: playlist/podcast: expose content:encoded which are the html show notes

Steve Lhomme (@robUx4) gitlab at videolan.org
Wed Aug 12 07:12:21 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
9a509810 by Felix Paul Kühne at 2026-08-12T06:50:06+00:00
playlist/podcast: expose content:encoded which are the html show notes

Decoding is up to the client

- - - - -
9bc15434 by Felix Paul Kühne at 2026-08-12T06:50:06+00:00
playlist/podcast: expose episode and season as meta data

- - - - -


1 changed file:

- modules/demux/playlist/podcast.c


Changes:

=====================================
modules/demux/playlist/podcast.c
=====================================
@@ -114,6 +114,9 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems )
     char *psz_item_keywords = NULL;
     char *psz_item_subtitle = NULL;
     char *psz_item_summary = NULL;
+    char *psz_item_content = NULL;
+    char *psz_item_season = NULL;
+    char *psz_item_episode = NULL;
     char *psz_item_art_url = NULL;
     char *psz_art_url = NULL;
     const char *node;
@@ -214,6 +217,8 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems )
                              !strcmp( psz_elname, "description" ) )
                         /* <description> isn't standard iTunes podcast stuff */
                         p = &psz_item_summary;
+                    else if( !strcmp( psz_elname, "content:encoded" ) )
+                        p = &psz_item_content;
                     else if( !strcmp( psz_elname, "pubDate" ) )
                         p = &psz_item_date;
                     else if( !strcmp( psz_elname, "itunes:category" ) )
@@ -224,6 +229,10 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems )
                         p = &psz_item_keywords;
                     else if( !strcmp( psz_elname, "itunes:subtitle" ) )
                         p = &psz_item_subtitle;
+                    else if( !strcmp( psz_elname, "itunes:season" ) )
+                        p = &psz_item_season;
+                    else if( !strcmp( psz_elname, "itunes:episode" ) )
+                        p = &psz_item_episode;
                     else
                         break;
 
@@ -305,6 +314,9 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems )
                         FREENULL( psz_item_keywords );
                         FREENULL( psz_item_subtitle );
                         FREENULL( psz_item_summary );
+                        FREENULL( psz_item_content );
+                        FREENULL( psz_item_season );
+                        FREENULL( psz_item_episode );
                         FREENULL( psz_item_art_url );
                         FREENULL( psz_elname );
                         b_item = false;
@@ -347,10 +359,22 @@ static int ReadDir( stream_t *p_demux, input_item_node_t *p_subitems )
                     ADD_INFO( _("Podcast Keywords"), psz_item_keywords );
                     ADD_INFO( _("Podcast Subtitle"), psz_item_subtitle );
                     ADD_INFO_META( _("Podcast Summary"), psz_item_summary, vlc_meta_Description );
+                    ADD_INFO_META( _("Podcast Season"), psz_item_season, vlc_meta_Season );
+                    ADD_INFO_META( _("Podcast Episode"), psz_item_episode, vlc_meta_Episode );
                     ADD_INFO( _("Podcast Type"), psz_item_type );
 #undef ADD_INFO
 #undef ADD_INFO_META
 
+                    if( psz_item_content )
+                    {
+                        input_item_AddInfo( p_input, _( "Podcast Info" ),
+                                            _( "Show Notes" ), "%s",
+                                            psz_item_content );
+                        input_item_SetMetaExtra( p_input, "content:encoded",
+                                                 psz_item_content );
+                        FREENULL( psz_item_content );
+                    }
+
                     /* Add the item art url if any, and the channel one otherwise */
                     if( psz_item_art_url != NULL )
                         input_item_SetArtURL( p_input, psz_item_art_url );
@@ -407,6 +431,9 @@ error:
     free( psz_item_keywords );
     free( psz_item_subtitle );
     free( psz_item_summary );
+    free( psz_item_content );
+    free( psz_item_season );
+    free( psz_item_episode );
     free( psz_item_art_url );
     free( psz_art_url );
     free( psz_elname );



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/2249fe7510a48d6e7426df842294ce351820c8f7...9bc15434221b2b1f11a889c259f983adac51ecdd

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/2249fe7510a48d6e7426df842294ce351820c8f7...9bc15434221b2b1f11a889c259f983adac51ecdd
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list