本帖最后由 yingzi4f 于 2023-6-4 10:58 编辑
目前支持 皮皮虾/抖音/微视/6间房/哔哩哔哩/微博/绿洲/度小视/开眼/陌陌/皮皮搞笑/全民k歌/逗拍/虎牙/新片场/哔哩哔哩/Acfun/美拍/西瓜视频/火山小视频/网易云Mlog/好看视频哔哩哔哩/6间房/微博仅支持下载无法去除水印
最近学习go,所以用go写了个调用API获取视频下载的小程序打开程序,输入视频URL,自动下载视频到程序目录。
编译后链接:https://pan.baidu.com/s/1-YR_BS2-WFwUefVvTgzDVw?pwd=52pj
提取码:52pj
源码[Golang] 纯文本查看 复制代码 package main
import (
"bufio"
"encoding/json"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
"strings"
)
func main() {
url := "https://tenapi.cn/v2/video"
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入视频 URL: ")
urlInput, _ := reader.ReadString('\n')
urlInput = strings.TrimSpace(urlInput)
payload := strings.NewReader("url=" + urlInput)
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
decoder := json.NewDecoder(res.Body)
var data map[string]interface{}
err := decoder.Decode(&data)
if err != nil {
panic(err)
}
video_title := data["data"].(map[string]interface{})["title"].(string)
video_cover := data["data"].(map[string]interface{})["cover"].(string)
video_url := data["data"].(map[string]interface{})["url"].(string)
file, err := os.Create(video_title + ".mp4")
if err != nil {
panic(err)
}
defer file.Close()
resp, err := http.Get(video_url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
_, err = io.Copy(file, resp.Body)
if err != nil {
panic(err)
}
fmt.Println("视频下载成功!")
fmt.Println("视频标题:", video_title)
fmt.Println("视频封面:", video_cover)
fmt.Println("视频下载地址:", video_url)
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(string(body))
}
|