Skip to content

Extract switch playtime from the Switch Parental Controls app

License

Notifications You must be signed in to change notification settings

andreterron/switch-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

switch-tracker

Extract switch playtime from the Switch Parental Controls Android app

Nintendo allows switch owners to track their gaming time using the Switch Parental Control app, but no API is available to access that data. This library extracts that data by controlling a developer enabled android device, using the ADB (Android Debug Bridge) command line tool.

See it in action:

Phone being controlled remotely to extract the playtime data

This library was tested on a Raspberry Pi and on macOS

Requirements

Installation

npm install switch-tracker

Usage

Terminal command

$ switch-tracker

Node.js

import { getSwitchPlayTime } from 'switch-tracker'

async function printPlayTime() {
    const playTime = await getSwitchPlayTime()
    console.log(playTime)
}

printPlayTime()

Example output:

[
  {
    "dateString": "Today",
    "weekday": "Su",
    "minutes": 0,
    "index": 0,
    "date": "2021-01-24"
  },
  {
    "dateString": "Yesterday",
    "weekday": "Sa",
    "minutes": 110,
    "index": 1,
    "date": "2021-01-23"
  },
  {
    "dateString": "22",
    "weekday": "Fr",
    "minutes": 0,
    "index": 2,
    "date": "2021-01-22"
  },
  /* ... */
]

Options

Descriptions:

  • pages: Number scrolls down the list of days, determines how many days are parsed
  • xmlFile: Temporary XML file path with the android UI information. Note: Probably doesn't need to be changed

Examples:

cli:

$ switch-tracker --pages 6 --xml-file ./android-ui.xml

code:

const playTime = await getSwitchPlayTime({
    pages: 6,
    xmlFile: "./android-ui.xml"
})

Specifications:

json field cli type default
pages -p --pages number 4
xmlFile -f --xml-file string (path) switch-tracker/ui.xml

Troubleshooting

  • Error: Command failed: adb shell uiautomator dump:
    • This is a known transient error, killing the app manually and giving it some time before trying it again should fix it
  • Please submit an issue if you run into anything else!

Development

Exiting features and some ideas for new ones:

  • extract play time for each day
  • cli tool
  • handle transient errors
  • add option to specify how many days to extract instead of specifying times to scroll
  • get games played that day
  • use nintendo's api directly instead of controlling an android device (see switchpub)

If you have any problems or suggestions, please open an issue or submit a pull request!

License

MIT License

About

Extract switch playtime from the Switch Parental Controls app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published