forked from iawia002/lux
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
71 lines (66 loc) · 1.58 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package main
import (
"flag"
"fmt"
"net/url"
"github.com/iawia002/annie/config"
"github.com/iawia002/annie/extractors"
"github.com/iawia002/annie/utils"
)
func init() {
flag.BoolVar(&config.Debug, "d", false, "Debug mode")
flag.BoolVar(&config.Version, "v", false, "Show version")
flag.BoolVar(&config.InfoOnly, "i", false, "Information only")
flag.StringVar(&config.Cookie, "c", "", "Cookie")
flag.BoolVar(&config.Playlist, "p", false, "Download playlist")
flag.StringVar(&config.Refer, "r", "", "Use specified Referrer")
flag.StringVar(&config.Proxy, "x", "", "HTTP proxy")
flag.StringVar(&config.Socks5Proxy, "s", "", "SOCKS5 proxy")
}
func main() {
flag.Parse()
args := flag.Args()
if config.Version {
fmt.Printf(
"annie: version %s, A simple and clean video downloader.\n", config.VERSION,
)
return
}
if len(args) < 1 {
fmt.Println("error")
return
}
videoURL := args[0]
u, err := url.ParseRequestURI(videoURL)
if err != nil {
fmt.Println(err)
return
}
domain := utils.Domain(u.Host)
switch domain {
case "douyin":
extractors.Douyin(videoURL)
case "bilibili":
extractors.Bilibili(videoURL)
case "bcy":
extractors.Bcy(videoURL)
case "pixivision":
extractors.Pixivision(videoURL)
case "youku":
extractors.Youku(videoURL)
case "youtube":
extractors.Youtube(videoURL)
case "youtu": // youtu.be
extractors.Youtube(videoURL)
case "iqiyi":
extractors.Iqiyi(videoURL)
case "mgtv":
extractors.Mgtv(videoURL)
case "tumblr":
extractors.Tumblr(videoURL)
case "vimeo":
extractors.Vimeo(videoURL)
default:
extractors.Universal(videoURL)
}
}