Categorygithub.com/mfederowicz/trakt-sync
modulepackage
1.3.1
Repository: https://github.com/mfederowicz/trakt-sync.git
Documentation: pkg.go.dev

# README

Installation

go install github.com/mfederowicz/trakt-sync@latest

Configuration

After install, we should create API app and save credentials in config file ($HOME/trakt-sync.toml):

client_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
token_path = "~/.config/trakt-sync/token.json"
errorCode = 0
warningCode = 0
per_page = 500

Usage

trakt-sync supports a -config flag whose value should correspond to a TOML file. If not provided, trakt-sync will try to use a global config file (assumed to be located at $HOME/trakt-sync.toml). Otherwise, if no configuration TOML file is found then trakt-sync uses a built-in parameters depends on selected module.

Command Line Flags

trakt-sync accepts the following command line parameters:

  • -config [PATH] - path to config file in TOML format, defaults to $HOME/trakt-sync.toml if present.
  • -version - get trakt-sync version.

Command Line Commands

trakt-sync accepts the following command line commands/modules:

  • help - Help on the trakt-sync command and subcommands.
  • history - returns movies and episodes that a user has watched, sorted by most recent.
  • watchlist - Returns all items in a user's watchlist filtered by type.
  • collection - Get all collected items in a user's collection.
  • users - Returns all data for a user.
  • people - Returns all data for selected person.
  • calendars - By default, the calendar will return all shows or movies for the specified time period and can be global or user specific.
  • search - Searches can use queries or ID lookups.

Sample export usage

Export all tvshows from the watching history:

$ ./trakt-sync history -t shows -> export_history_shows_imdb.json

Export all episodes from the watching history:

$ ./trakt-sync history -t episodes -f tmdb -> export_history_episodes_tmdb.json
$ ./trakt-sync history -t episodes -f imdb -> export_history_episodes_imdb.json

Export all movies from watchlist:

$ ./trakt-sync watchlist -t movies -f tmdb -> export_watchlist_movies_tmdb.json 
$ ./trakt-sync watchlist -t movies -f imdb -> export_watchlist_movies_imdb.json

Export movies or shows from collection extended with metadata:

$ ./trakt-sync collection -t movies --ex metadata
$ ./trakt-sync collection -t shows --ex metadata

Export movies or shows or episodes from user lists:

$ ./trakt-sync users -a lists -u username -i 123456 -t episodes
$ ./trakt-sync users -a lists -u username -i 123456 -t shows
$ ./trakt-sync users -a lists -u username -i 123456 -t movies

Fetch lists for selected user:

$ ./trakt-sync users -a lists -u username 

Fetch saved filters for selected user:

$ ./trakt-sync users -a saved_filters -u username 

Fetch stats for selected user:

$ ./trakt-sync users -a stats -u sean 

Fetch watched movies for selected user:

$ ./trakt-sync users -a watched -t movies -u sean 

Fetch watched shows for selected user:

$ ./trakt-sync users -a watched -t shows -u sean 

Fetch watched shows for selected user without seasons:

$ ./trakt-sync users -a watched -t shows -u sean --ex noseasons

Export people data:

$ ./trakt-sync people -a updates -start_date 2024-10-13
$ ./trakt-sync people -a updated_ids -start_date 2024-10-13
$ ./trakt-sync people -a summary -i john-wayne
$ ./trakt-sync people -a movies -i john-wayne
$ ./trakt-sync people -a shows -i john-wayne
$ ./trakt-sync people -a lists -i john-wayne

Export all or my calendars:

$ ./trakt-sync calendars -a all-shows -> export_calendars_shows_20240707_7.json
$ ./trakt-sync calendars -a all-new-shows -> export_calendars_new_shows_20240707_7.json
$ ./trakt-sync calendars -a all-season-premieres -> export_calendars_season_premieres_20240707_7.json
$ ./trakt-sync calendars -a all-finales -> export_calendars_finales_20240707_7.json 
$ ./trakt-sync calendars -a all-movies -> export_calendars_movies_20240707_7.json  
$ ./trakt-sync calendars -a all-dvd -> export_calendars_dvd_20240707_7.json

Export search result by Text Query:

$  ./trakt-sync search -a text-query -t movie -q freddy --field title
$  ./trakt-sync search -a text-query -t movie -t show -q freddy --field tagline
$  ./trakt-sync search -a text-query -t movie -t show -t list -q freddy --field name
$  ./trakt-sync search -a text-query -t movie -t show -t list -q freddy --field title
$  ./trakt-sync search -a text-query -t person -t list -q freddy --field name
$  ./trakt-sync search -a text-query -t movie -t show -t list -q freddy --field title

Export search result by Id lookup:

$ ./trakt-sync search -a id-lookup -i 12601 -t movie -t show
$ ./trakt-sync search -a id-lookup --id_type tvdb -i 12601 -t movie -t show
$ ./trakt-sync search -a id-lookup --id_type imdb -i 12601 -t movie
$ ./trakt-sync search -a id-lookup --id_type imdb -i 12601 -t podcast
$ ./trakt-sync search -a id-lookup --id_type imdb -i tt0266697
$ ./trakt-sync search -a id-lookup --id_type tvdb -i 75725
$ ./trakt-sync search -a id-lookup --id_type tvdb -i 75725 -t podcast
$ ./trakt-sync search -a id-lookup -i 75725 
$ ./trakt-sync search -a id-lookup -i 75725 -t episode
$ ./trakt-sync search -a id-lookup --id_type tmdb -i 254265

License

MIT

# Packages

Package buffer used to write buffer bytes and printout logs if exists.
Package cfg used for process configuration.
Package cli for basic cli functions.
Package cmds used for commands modules.
Package consts used to store const for application.
Package handlers used to handle module actions.
Package printer is replacement for fmt.* functions.
Package str used for structs.
Package test used for process tests.
Package uri used for url operations.
Package writer used for write operations.