2020-02-08 01:51:17 +02:00
package config
2020-01-19 04:11:53 +02:00
import (
2020-02-25 01:01:10 +02:00
"flag"
"fmt"
"os"
2020-01-19 04:11:53 +02:00
)
// Config - Runtime configuration
var Config struct {
2020-02-25 01:01:10 +02:00
URL string
OutputPath string
BatchFilePath string
Debug bool
MetaData bool
Quiet bool
Deadline int
Limit int
JSONOnly bool
2020-01-19 04:11:53 +02:00
}
// GetConfig - Returns Config object
func GetConfig ( ) {
2020-02-25 01:01:10 +02:00
outputPath := flag . String ( "output" , "./downloads" , "Output path" )
batchFilePath := flag . String ( "batch-file" , "" , "File containing URLs/Usernames to download, one value per line. Lines starting with '#', are considered as comments and ignored." )
debug := flag . Bool ( "debug" , false , "Enables debug mode" )
metadata := flag . Bool ( "metadata" , false , "Write video metadata to a .json file" )
quiet := flag . Bool ( "quiet" , false , "Supress output" )
deadline := flag . Int ( "deadline" , 1500 , "Sets the timout for scraper logic in seconds (used as a workaround for 'context deadline exceeded' error)" )
limit := flag . Int ( "limit" , 0 , "Sets the videos count limit (useful when there too many videos from the user or by hashtag)" )
jsonOnly := flag . Bool ( "json" , false , "Just get JSON data from scraper (without video downloading)" )
flag . Parse ( )
2020-01-19 04:11:53 +02:00
2020-02-25 01:01:10 +02:00
args := flag . Args ( )
if len ( args ) < 1 && * batchFilePath == "" {
fmt . Println ( "Usage: tiktok-dl [OPTIONS] TIKTOK_USERNAME|TIKTOK_URL" )
fmt . Println ( " or: tiktok-dl [OPTIONS] -batch-file path/to/users.txt" )
os . Exit ( 2 )
}
2020-01-19 04:11:53 +02:00
2020-02-25 01:01:10 +02:00
if len ( args ) > 0 {
Config . URL = flag . Args ( ) [ len ( args ) - 1 ]
} else {
Config . URL = ""
}
Config . OutputPath = * outputPath
Config . BatchFilePath = * batchFilePath
Config . Debug = * debug
Config . MetaData = * metadata
Config . Quiet = * quiet
if * jsonOnly {
Config . Quiet = true
}
Config . Deadline = * deadline
Config . Limit = * limit
Config . JSONOnly = * jsonOnly
2020-01-19 04:11:53 +02:00
}