malai 6ffa8a248b refactor: 模块路径迁移到 gitea.malai.tech
仓库已迁到 gitea.malai.tech,同步更新 go.mod module 声明与全部内部 import,
使其可作为正式 Go 模块被 go get 解析(此前声明路径 gitea.malaihome.work 已不可达)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 15:27:48 +08:00
2025-04-27 17:32:25 +08:00
2025-03-28 22:27:08 +08:00

Podcast Search for Go

这是一个用于搜索播客和解析播客RSS订阅的Go库。支持iTunes和PodcastIndex目录以及章节和转录等新功能。

功能

  • 通过iTunes和PodcastIndex搜索播客
  • 解析播客RSS订阅
  • 获取播客剧集详情
  • 支持播客章节和转录

安装

go get github.com/amugofjava/podcast_search/golang

使用方法

搜索播客

package main

import (
	"fmt"
	"github.com/amugofjava/podcast_search/golang/search"
)

func main() {
	// 创建iTunes搜索提供者
	searchProvider := search.NewITunesProvider()
	
	// 搜索播客
	result, err := searchProvider.SearchPodcasts("golang", nil)
	if err != nil {
		fmt.Printf("搜索错误: %v\n", err)
		return
	}
	
	// 打印结果
	fmt.Printf("找到 %d 个播客\n", result.ResultCount)
	for _, item := range result.Items {
		fmt.Printf("标题: %s\n", item.Title)
		fmt.Printf("作者: %s\n", item.Author)
		fmt.Printf("Feed URL: %s\n\n", item.FeedURL)
	}
}

加载播客订阅

package main

import (
	"fmt"
	"github.com/amugofjava/podcast_search/golang/model"
)

func main() {
	// 加载播客订阅
	podcast, err := model.LoadFeed("https://feeds.simplecast.com/XA_851k3")
	if err != nil {
		fmt.Printf("加载订阅错误: %v\n", err)
		return
	}
	
	// 打印播客信息
	fmt.Printf("标题: %s\n", podcast.Title)
	fmt.Printf("描述: %s\n", podcast.Description)
	fmt.Printf("剧集数量: %d\n\n", len(podcast.Episodes))
	
	// 打印剧集信息
	for i, episode := range podcast.Episodes {
		if i >= 3 {
			break // 只显示前3个剧集
		}
		fmt.Printf("剧集: %s\n", episode.Title)
		fmt.Printf("发布日期: %s\n\n", episode.PublicationDate)
	}
}

许可证

此库使用MIT许可证。详情请参阅LICENSE文件。

Description
No description provided
Readme 116 KiB
Languages
Go 100%