diff options
Diffstat (limited to 'importers/importer.go')
| -rw-r--r-- | importers/importer.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/importers/importer.go b/importers/importer.go new file mode 100644 index 0000000..c74d621 --- /dev/null +++ b/importers/importer.go @@ -0,0 +1,33 @@ +package importers + +import ( + "errors" + "strings" +) + +var ( + ErrUnsupportedVideoURL = errors.New("error: unsupported video url") +) + +type VideoInfo struct { + ID string `json:"id"` + Title string `json:"title"` + Description string `json:"description"` + + VideoURL string `json:"video_url"` + ThumbnailURL string `json:"thumbnail_url"` +} + +type Importer interface { + GetVideoInfo(url string) (VideoInfo, error) +} + +func NewImporter(url string) (Importer, error) { + if strings.Contains(url, "youtube.com") || strings.HasPrefix(url, "youtube:") { + return &YoutubeImporter{}, nil + } else if strings.Contains(url, "youtube.com") || strings.HasPrefix(url, "youtube:") { + return &VimeoImporter{}, nil + } else { + return nil, ErrUnsupportedVideoURL + } +} |
