mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Add a new offline route
This commit is contained in:
parent
523406f269
commit
c0f6b5a85f
@ -28,6 +28,33 @@ func DirectStream(c echo.Context) error {
|
||||
return c.File(path)
|
||||
}
|
||||
|
||||
// Download item
|
||||
//
|
||||
// Transcode the video/audio to the selected quality for offline use.
|
||||
// This route will be slow and stream an incomplete file, this is not meant to be used while
|
||||
// streaming.
|
||||
//
|
||||
// Path: /:resource/:slug/offline?quality=:quality
|
||||
func (h *Handler) GetOffline(c echo.Context) error {
|
||||
resource := c.Param("resource")
|
||||
slug := c.Param("slug")
|
||||
quality, err := src.QualityFromString(c.QueryParam("quality"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
path, err := GetPath(resource, slug)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ret, err := h.downloader.GetOffline(path, quality)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return c.String(http.StatusOK, ret)
|
||||
}
|
||||
|
||||
// Get master playlist
|
||||
//
|
||||
// Get a master playlist containing all possible video qualities and audios available for this resource.
|
||||
@ -265,6 +292,7 @@ func (h *Handler) GetSubtitle(c echo.Context) error {
|
||||
type Handler struct {
|
||||
transcoder *src.Transcoder
|
||||
extractor *src.Extractor
|
||||
downloader *src.Downloader
|
||||
}
|
||||
|
||||
func main() {
|
||||
@ -277,9 +305,14 @@ func main() {
|
||||
e.Logger.Fatal(err)
|
||||
return
|
||||
}
|
||||
h := Handler{transcoder: transcoder, extractor: src.NewExtractor()}
|
||||
h := Handler{
|
||||
transcoder: transcoder,
|
||||
extractor: src.NewExtractor(),
|
||||
downloader: src.NewDownloader(),
|
||||
}
|
||||
|
||||
e.GET("/:resource/:slug/direct", DirectStream)
|
||||
e.GET("/:resource/:slug/offline", h.GetOffline)
|
||||
e.GET("/:resource/:slug/master.m3u8", h.GetMaster)
|
||||
e.GET("/:resource/:slug/:quality/index.m3u8", h.GetVideoIndex)
|
||||
e.GET("/:resource/:slug/audio/:audio/index.m3u8", h.GetAudioIndex)
|
||||
|
11
transcoder/src/downloader.go
Normal file
11
transcoder/src/downloader.go
Normal file
@ -0,0 +1,11 @@
|
||||
package src
|
||||
|
||||
type Downloader struct{}
|
||||
|
||||
func NewDownloader() *Downloader {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Downloader) GetOffline(path string, quality Quality) (string, error) {
|
||||
return "", nil
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user