Commit 2fc49b2

bryfry <bryon@fryer.io>
2017-03-02 17:07:36
init
Changed files (1)
gen_feed.go
@@ -0,0 +1,55 @@
+package main
+
+import (
+	"bytes"
+	"github.com/gorilla/feeds"
+	"github.com/mmcdole/gofeed"
+	"log"
+	"os"
+	"os/exec"
+	"strings"
+	"time"
+)
+
+func main() {
+	YouTubePlaylistRSS := "https://www.youtube.com/feeds/videos.xml?playlist_id=PLiZxWe0ejyv8CSMylrxb6Nx4Ii2RHbu_j"
+	audiodir := "/Users/bryfry/"
+	fp := gofeed.NewParser()
+	feed, _ := fp.ParseURL(YouTubePlaylistRSS)
+	now := time.Now()
+
+	newfeed := &feeds.Feed{
+		Title:       "Late Show w/ Stephen Colbert Intro Monologues",
+		Link:        &feeds.Link{Href: "https://www.youtube.com/channel/UCMtFAi84ehTSYSE9XoHefig"},
+		Description: "Podcast version of Intro Monologues",
+		Author:      &feeds.Author{Name: "CBS", Email: ""},
+		Created:     now,
+	}
+
+	for _, i := range feed.Items {
+		guid := strings.Split(i.GUID, ":")
+		id := guid[len(guid)-1]
+
+		if _, err := os.Stat(audiodir + id + ".mp3"); os.IsNotExist(err) {
+			// id mp3 hasn't been downloaded
+			cmd := exec.Command("youtube-dl", "--extract-audio", "--audio-format", "mp3", "-o", "%(id)s.%(ext)s", i.Link)
+			var out bytes.Buffer
+			cmd.Stdout = &out
+			err := cmd.Run()
+			if err != nil {
+				log.Fatal(err)
+			}
+		}
+
+		newitem := &feeds.Item{
+			Title:   i.Title,
+			Link:    &feeds.Link{Href: "trustme.click/audio/" + id + ".mp3", Type: "audio/mpeg"},
+			Created: *i.PublishedParsed,
+			Updated: *i.UpdatedParsed,
+		}
+		newfeed.Items = append(newfeed.Items, newitem)
+	}
+	writer, _ := os.Create("/tmp/tmp.xml")
+	newfeed.WriteRss(writer)
+
+}