package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"os"
"path/filepath"
"time"
)
func DownloadPdf(tsid int) ([]byte, error) {
// 表单数据
//data := url.Values{}
//data.Set("name", "rnben")
//data.Set("__RequestVerificationToken", pdfattr.Token)
//data.Set("id", pdfattr.ID)
//data.Set(pdfattr.Name, "")
// 请求头数据
//URI := "https://bilibili.xiang-kuyun.com/20210215/11581_edc20a8a/1000k/hls/d488571a07f000013.ts"
URI := "https://bilibili.xiang-kuyun.com/20210215/11581_edc20a8a/1000k/hls/d488571a07f" + fmt.Sprintf("%06d", tsid) + ".ts"
r, err := http.NewRequest("GET", URI, nil)
r.Header.Set("authority", "bilibili.xiang-kuyun.com")
r.Header.Add("Accept-Encoding", "gzip, deflate, br")
r.Header.Add("Accept-Language", "zh-CN,zh;q=0.9")
r.Header.Add("origin", "http://www.haiantv.com")
r.Header.Add("sec-ch-ua", `"Chromium";v="88", "Google Chrome";v="88", ";Not\\A\"Brand";v="99"`)
r.Header.Add("sec-ch-ua-mobile", "?1")
r.Header.Add("sec-fetch-dest", "empty")
r.Header.Add("sec-fetch-mode", "cors")
r.Header.Add("sec-fetch-site", "cross-site")
r.Header.Add("user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Mobile Safari/537.36")
// 打印http请求
//if Debug {
/*
fmt.Println("------------------------start--------------------------------")
//fmt.Printf("%v", r)
requestDump, err := httputil.DumpRequest(r, true)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(requestDump))
fmt.Println("-------------------------end---------------------------------")
*/
//}
// 执行http请求
client := &http.Client{}
resp, err := client.Do(r)
if err != nil {
fmt.Println(err.Error())
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
//fmt.Println(string(body))
return body, err
}
func DownloadTangrenjie3(tsid int) ([]byte, error) {
URI := "https://qingxi.xi-zuida.com/20210214/1241_b3b11edb/1000k/hls/7cd9f0647e8" + fmt.Sprintf("%06d", tsid) + ".ts"
r, err := http.NewRequest("GET", URI, nil)
r.Header.Set("authority", "qingxi.xi-zuida.com")
r.Header.Add("Accept-Encoding", "gzip, deflate, br")
r.Header.Add("Accept-Language", "zh-CN,zh;q=0.9")
r.Header.Add("origin", "http://www.haiantv.com")
r.Header.Add("sec-ch-ua", `"Chromium";v="88", "Google Chrome";v="88", ";Not\\A\"Brand";v="99"`)
r.Header.Add("sec-ch-ua-mobile", "?1")
r.Header.Add("sec-fetch-dest", "empty")
r.Header.Add("sec-fetch-mode", "cors")
r.Header.Add("sec-fetch-site", "cross-site")
r.Header.Add("user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Mobile Safari/537.36")
// 打印http请求
//if Debug {
/*
fmt.Println("------------------------start--------------------------------")
//fmt.Printf("%v", r)
requestDump, err := httputil.DumpRequest(r, true)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(requestDump))
fmt.Println("-------------------------end---------------------------------")
*/
//}
// 执行http请求
client := &http.Client{}
resp, err := client.Do(r)
if err != nil {
fmt.Println(err.Error())
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
//fmt.Println(string(body))
return body, err
}
func ServeHTTPLihuanying(w http.ResponseWriter, r *http.Request) {
video, err := os.Open("./lihuanying.mp4")
if err != nil {
log.Fatal(err)
}
defer video.Close()
http.ServeContent(w, r, "lihuanying.mp4", time.Now(), video)
}
func ServeHTTPTangtan3(w http.ResponseWriter, r *http.Request) {
video, err := os.Open("./tangtan3.mp4")
if err != nil {
log.Fatal(err)
}
defer video.Close()
http.ServeContent(w, r, "tangtan3.mp4", time.Now(), video)
}
func ServeHTTPTs(w http.ResponseWriter, r *http.Request) {
video, err := os.Open("./ts.mp4")
if err != nil {
log.Fatal(err)
}
defer video.Close()
http.ServeContent(w, r, "ts.mp4", time.Now(), video)
}
func main() {
// 视频播放服务器
http.HandleFunc("/lihuanying", ServeHTTPLihuanying)
http.HandleFunc("/tangtan3", ServeHTTPTangtan3)
http.HandleFunc("/ts", ServeHTTPTs)
http.ListenAndServe(":8080", nil)
return
// 下载李焕英视频
/*
for i := 0; i <= 1798; i++ {
//for i := 0; i <= 2; i++ {
d0, err := DownloadPdf(i)
if err != nil {
panic(err)
}
filename := fmt.Sprintf("%06d", i) + ".ts"
ioutil.WriteFile(filepath.Join("ts", filename), d0, 0666)
fmt.Printf("下载片段:%d\n", i)
}
*/
// 下载唐人街3视频
for i := 122; i <= 1986; i++ {
//for i := 0; i <= 2; i++ {
d0, err := DownloadTangrenjie3(i)
if err != nil {
panic(err)
}
filename := fmt.Sprintf("%06d", i) + ".ts"
ioutil.WriteFile(filepath.Join("ts", filename), d0, 0666)
fmt.Printf("下载片段:%d\n", i)
}
}
02-20
372
02-26
05-26
02-28