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文件。 |