go编写聚合平台视频无水印下载
本帖最后由 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
源码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 mapinterface{}
err := decoder.Decode(&data)
if err != nil {
panic(err)
}
video_title := data["data"].(mapinterface{})["title"].(string)
video_cover := data["data"].(mapinterface{})["cover"].(string)
video_url := data["data"].(mapinterface{})["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))
}
本帖最后由 tgrnf 于 2024-1-16 18:10 编辑
我下载了,打开名为视频下载的EXE文件,输入视频链接后回车,程序立马就自动主动关闭了,试了好几次以后,现在是不会自动关闭了但是程序也没有任何反应。解析不了。是那里出了问题?
hackysh 发表于 2023-6-4 19:41
res, _ := http这什么语法,一点都不优美
这是go语法呀。go规定所有声明变量必须使用,否则无法编译。 _ 符合代表可以不使用变量。
:= 语法 可以不指定变量类型 收藏了 顶一个 收藏,学习了 感谢分享,也准备写代码了 楼主API在哪里找的{:1_918:} 感谢分享优质资源 能去水印赞一个。 楼主有点厉害哦!谢谢分享! 感谢分享,谢谢分享! 能去水印就好了。