谷歌搜索某讯m3u8获取就能搜到很多
我这里选这个
https://github.com/nilaoda/N_m3u8DL-CLI/issues/11
javascript:prompt(PLAYER._DownloadMonitor.context.dataset.title,PLAYER._DownloadMonitor.context.dataset.currentVideoUrl);
上面这一段直接在F12的console里执行能显示m3u8的地址
那就简单了,用chromedp模拟执行js代码就好了
package main
import (
"context"
"fmt"
"log"
"github.com/chromedp/cdproto/network"
"github.com/chromedp/chromedp"
)
func main() {
options := []chromedp.ExecAllocatorOption{
chromedp.Flag("headless", true), // debug使用
//chromedp.Flag("blink-settings", "imagesEnabled=false"),
chromedp.UserAgent(`Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36`),
}
options = append(chromedp.DefaultExecAllocatorOptions[:], options...)
c, _ := chromedp.NewExecAllocator(context.Background(), options...)
// create context
ctx, cancel := chromedp.NewContext(c, chromedp.WithLogf(log.Printf))
defer cancel()
// navigate to a page, wait for an element, click
//var res string
var result string
err := chromedp.Run(ctx,
network.Enable(),
chromedp.Navigate("https://v.qq.com/x/cover/mzc002003wfmjxq/v00357y85h0.html"),
chromedp.Evaluate("PLAYER._DownloadMonitor.context.dataset.currentVideoUrl", &result),
)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)
}
附上常用视频网站的js代码