6ffa8a248b9886ae6f54d3a8afab16d2571e04e1
仓库已迁到 gitea.malai.tech,同步更新 go.mod module 声明与全部内部 import, 使其可作为正式 Go 模块被 go get 解析(此前声明路径 gitea.malaihome.work 已不可达)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Languages
Go
100%