diff --git a/reader/rewrite/rewrite_functions.go b/reader/rewrite/rewrite_functions.go
index c5f930fe69dbf976d33ab7d1437731adcf76b663..b5b5240972feb522fb027bf2fdb3b14046ad7b58 100644
--- a/reader/rewrite/rewrite_functions.go
+++ b/reader/rewrite/rewrite_functions.go
@@ -282,3 +282,9 @@ func removeCustom(entryContent string, selector string) string {
 	output, _ := doc.Find("body").First().Html()
 	return output
 }
+
+func addCastopodEpisode(entryURL, entryContent string) string {
+	player := `<iframe width="650" frameborder="0" src="` + entryURL + `/embed/light"></iframe>`
+
+	return player + `<br>` + entryContent
+}
diff --git a/reader/rewrite/rewriter.go b/reader/rewrite/rewriter.go
index e806bf1691168654eec5b22df8da1d14346a699f..feb0139ee0692b5ca9cdbb93db58f6f5a08945f9 100644
--- a/reader/rewrite/rewriter.go
+++ b/reader/rewrite/rewriter.go
@@ -100,6 +100,8 @@ func applyRule(entryURL, entryContent string, rule rule) string {
 		} else {
 			logger.Debug("[Rewrite] Cannot find selector for remove rule %s", rule)
 		}
+	case "add_castopod_episode":
+		entryContent = addCastopodEpisode(entryURL, entryContent)
 	}
 
 	return entryContent
diff --git a/reader/rewrite/rewriter_test.go b/reader/rewrite/rewriter_test.go
index 38e3df936c2b159e2a0313cb8bf33a3a3bdbd030..f796da7d2895d40199973a5e1ed8e8f02b88bb5f 100644
--- a/reader/rewrite/rewriter_test.go
+++ b/reader/rewrite/rewriter_test.go
@@ -286,3 +286,12 @@ func TestRewriteRemoveCustom(t *testing.T) {
 		t.Errorf(`Not expected output: %s`, output)
 	}
 }
+
+func TestRewriteAddCastopodEpisode(t *testing.T) {
+	output := Rewriter("https://podcast.demo/@demo/episodes/test", "Episode Description", `add_castopod_episode`)
+	expected := `<iframe width="650" frameborder="0" src="https://podcast.demo/@demo/episodes/test/embed/light"></iframe><br>Episode Description`
+
+	if expected != output {
+		t.Errorf(`Not expected output: got "%s" instead of "%s"`, output, expected)
+	}
+}