87 lines
1.7 KiB
Markdown
87 lines
1.7 KiB
Markdown
# Podcast Search for Go
|
|
|
|
这是一个用于搜索播客和解析播客RSS订阅的Go库。支持iTunes和PodcastIndex目录,以及章节和转录等新功能。
|
|
|
|
## 功能
|
|
|
|
- 通过iTunes和PodcastIndex搜索播客
|
|
- 解析播客RSS订阅
|
|
- 获取播客剧集详情
|
|
- 支持播客章节和转录
|
|
|
|
## 安装
|
|
|
|
```bash
|
|
go get github.com/amugofjava/podcast_search/golang
|
|
```
|
|
|
|
## 使用方法
|
|
|
|
### 搜索播客
|
|
|
|
```go
|
|
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)
|
|
}
|
|
}
|
|
```
|
|
|
|
### 加载播客订阅
|
|
|
|
```go
|
|
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文件。 |