Any existing apps that beemind the time spent on websites?

I want to limit my time on social media, i.e. Do Less with Positive Commitment, and want an automatic data source.

Ideally the app will record time spent on active web browser tabs of twitter.com or reddit.com, and send the total time over to beeminder.

I have been looking for one but cannot find any that fit the requirement.

It looks like this chrome extension does what I want and is open-sourced, so my job is simply hooking it up to beeminder’s API. The problem is my javascript skill being near zero.

Is this a good/bad idea? Why is it so hard to find an app for such a simple use case?

4 Likes

RescueTime is our standard answer for this! (Actually it’d be great for us to know if you missed that in our integrations gallery or if you ruled it out.)

3 Likes

Oops! Totally missed RescueTime.

I actually used RescueTime first, then am very upset that it is no longer working for my iPhone (tracking usage of apps, websites, etc.), uninstalled the goal, and totally forgot about it.

Consider the issue solved for the web browser use case.

However, RescueTime just does not work with iPhone (source: personal experience and all the reviews on the App Store: https://apps.apple.com/us/app/rescuetime/id1629924958)

Any solutions for tracking app/website time on iphone? A very big part of my time is on the phone and having that covered is crucial …

3 Likes

Have you considered using apps and browser extensions that block or limit time on certain sites instead of using beeminder for this? I’m on Android, but my phone lets me set timers for certain apps, and I use appblock and one sec to add further restrictions / friction to certain apps and websites.

3 Likes

I’m using one at the moment! However, I would still love to have it integrated with beeminder, with auto data sourcing and attach a pledge to it though.

I’m just surprised beeminder + rescueTime cannot do this given the amazing list of its readily integrations.

2 Likes

Apple hasn’t wanted this to be a possibility for a long time (but maybe it is possible now).

When they touted new options for it a few years ago, the caveat not mentioned in their presentations was that it was only for managed accounts for children!

I saw some things at the last WWDC that seemed like it might be possible, but I personally haven’t gotten around to reviewing it. I would have expected that Rescue time or someone else would be loudly proclaiming their success if it were possible (a developer’s version of the Efficient Markets Hypothesis) but maybe everyone else is as grumpy about looking into this with every iOS release as I am and hasn’t gotten around to it either :slight_smile:

4 Likes

Good to know the experts tried :slight_smile:

A quick question in case I might try to work on it too…

Is the core issue here: “there is no way to officially access ScreenTime data through its API”?
Because as I imagined, once screenTime data is obtained, there is nothing stopping an app compiling the data and sending it over to beeminder.

If it is indeed this hard to access screenTime data (how long did XYZ app run today, etc.) through its API, it is indeed very sad.

Still it seems there is something here? Apple Developer Documentation

1 Like

It has been the case that “there is no way to get ScreenTime data through an API at the granularity that would be useful for this type of thing”. I believe you’ve been able to get things like batched statistics over the past week or month or something. (Like I said above, though, this may be different as of iOS 15 or 16 or so. I can dig up my notes if that’d be useful.)

If it is possible on a technical level, the next step would be to see if it could possibly pass App Store review. There may be public rules around the APIs, but even if there aren’t, it doesn’t mean there aren’t non-public rules :/. If it can’t pass App Store review, you could still install it on your own devices (as long as you reinstalled it every 90 days or something, I forget the expiration period.)

2 Likes

Another good resource is the folks over at ActivityWatch. I just did a quick search and it looks like they’ve looked into the DeviceActivity APIs, at least a litte: iOS support · Issue #751 · ActivityWatch/activitywatch · GitHub

1 Like

The Timing App on Mac are managing to integrate iOS data now: Screen Time Integration – Timing Time Tracker They need full disk access on a linked Mac to do it though so I guess they are excavating the data from the system somewhere, I haven’t looked into the details but I’ve let them do it and the data is good (as well as kind of alarming :scream: ) .

I know Timing has an API too, I just don’t have access to it as I have the app through the Setapp bundle which doesn’t include API access, or didn’t last time I looked, so I haven’t looked into whether iOS time is Beemindable from there. One hazard would certainly be that the iOS data is considerably delayed in getting processed back on your Mac.

5 Likes

For completeness:

iOS16 seems to allow blocking apps now (https://www.reddit.com/r/nosurf/comments/yy2dk7/ios_16_has_added_an_api_for_app_blocking/). There are at least two apps in the App Store that gracefully block apps on demand.

Now this would not exactly solve the fine-grain time tracking problem, but it does provide an opportunity:

Assuming we block all distracting apps 24/7 by default. Users would have to proactively turn the lock off to access any of those distracting apps. This gives the opportunity to record “unlocking time” without needing access to ScreenTime API. This “unlocking time” can totally be a DoLess goal.

Unfortunately I am having trouble finding the relevant documentation to access the blocking API. Can anyone who is more familiar with navigating iOS developer’s documentation give a hand?

3 Likes