diff --git a/drivers/quark_uc/util.go b/drivers/quark_uc/util.go index 94b62778..fa448588 100644 --- a/drivers/quark_uc/util.go +++ b/drivers/quark_uc/util.go @@ -149,12 +149,18 @@ func (d *QuarkOrUC) getTranscodingLink(file model.Obj) (*model.Link, error) { return nil, err } - return &model.Link{ - URL: resp.Data.VideoList[0].VideoInfo.URL, - ContentLength: resp.Data.VideoList[0].VideoInfo.Size, - Concurrency: 3, - PartSize: 10 * utils.MB, - }, nil + for _, info := range resp.Data.VideoList { + if info.VideoInfo.URL != "" { + return &model.Link{ + URL: info.VideoInfo.URL, + ContentLength: info.VideoInfo.Size, + Concurrency: 3, + PartSize: 10 * utils.MB, + }, nil + } + } + + return nil, errors.New("no link found") } func (d *QuarkOrUC) upPre(file model.FileStreamer, parentId string) (UpPreResp, error) { diff --git a/drivers/quark_uc_tv/util.go b/drivers/quark_uc_tv/util.go index f513ef11..d68a2f3c 100644 --- a/drivers/quark_uc_tv/util.go +++ b/drivers/quark_uc_tv/util.go @@ -228,12 +228,18 @@ func (d *QuarkUCTV) getTranscodingLink(ctx context.Context, file model.Obj) (*mo return nil, err } - return &model.Link{ - URL: fileLink.Data.VideoInfo[0].URL, - Concurrency: 3, - PartSize: 10 * utils.MB, - ContentLength: fileLink.Data.VideoInfo[0].Size, - }, nil + for _, info := range fileLink.Data.VideoInfo { + if info.URL != "" { + return &model.Link{ + URL: info.URL, + ContentLength: info.Size, + Concurrency: 3, + PartSize: 10 * utils.MB, + }, nil + } + } + + return nil, errors.New("no link found") } func (d *QuarkUCTV) getDownloadLink(ctx context.Context, file model.Obj) (*model.Link, error) {