Melvin
September 17, 2019, 3:59pm
1
I wonder what approach could be taken to measure watching YouTube videos as not being afk. Is it possible for watchers to communicate with each other? Because if they are, then it’s something along the lines of: whenever an active window is streaming media content, then the afk watcher ‘concludes’ that the user is not afk.
What do you think: should a modified afk watcher be made for this?
The closest suggestion to this we’ve made is the ability to count tabs in the browser which are marked as “audible” (which means some media playing with sound) are counted as not-afk if that tab is currently focused.
The flaw with this is that it impacts the performance of the queries to aw-server, but that performance drop might we worth it. In my opinion it would be good to have it togglable.
ActivityWatch:master ← ActivityWatch:dev/audible
opened 11:41AM - 26 Jun 18 UTC
Very much WIP, very untested.
Depends on https://github.com/ActivityWatch/aw-… core/pull/65
Something like this can be very very useful in this time of frequent online meetings.
Would it at least be possible to use application-dependent afk time? So that one could at least set a larger afk time trigger for programs like Microsoft Teams, Skype and so on.
Thank you, this service looks very promising! Love it
The “audible-as-afk” feature was merged and will be in the next release!
ActivityWatch:master ← ActivityWatch:dev/new-audible
opened 06:17PM - 25 Feb 21 UTC
I just banged this out without testing it at all, not sure if it'll work.
**E… dit:** Huh, it wasn't too stupid after all. Seems to work...
Also re-adds the 'filter AFK' option.
Replaces #85
Partially fixes https://github.com/ActivityWatch/activitywatch/issues/261
### Things to fix
- [x] Prettier checkboxes at the bottom of the activity page
- [x] More extensive testing?
I made a comment in the related GitHub issue with some details, such as what it works for and what it doesn’t work for:
opened 07:15AM - 07 Jan 19 UTC
area: analysis
area: watcher
# The Problem
One of the larger time-sinks today is video. Be that through st… reaming services like Netflix, Amazon Prime Video, or HBO. Media sites like YouTube, Twitch, or Vimeo. Or from downloaded or streamed media on players like VLC or MPV.
Activitywatch, unfortunately, fails to effectively record the time spent on these activities as it relies on mouse and keyboard input to determine activity. This means when watching a video, Activitywatch will mark the time as afk after a short while. Even though the user is present, and spending time on an activity at their device.
This was brought up in https://github.com/ActivityWatch/activitywatch/issues/186 which was marked as `wontfix`. I believe that this something that CAN be solved, and should be seriously considered given the amount of time that can be spent consuming media.
Afk time can be disabled, but this then pollutes the data. Users may go afk for a variety of times in a variety of applications or websites throughout the day, which could pollute the afk time to the point of video-specific time may no longer be useful.
# Possible solutions
**Note:** Not all problems/disadvantages/pitfalls are meant to be solvable. I am including them for devils advocates sake and to foster a more robust discussion.
#### Application/Site Tagging
Compile a list of common media applications and websites. When the use goes `afk` on this site or application, mark the time as non-afk. This isn't technically tagging, but it could be setup to work in a tag-like way, which would make this into a very extendable solution for more than just videos.
##### Advantages
* Easy to maintain
* Add sites/applications as you see fit, or as the community points them out
* Simple
##### Disadvantages/Pitfalls
* Initial list will be a chore to create
* Can always ask the community for assistance. You create the functionality, and get the community to fill it in with you curating.
* Is not quite *perfect*.
* What if the user is legitimately afk on a youtube page?
* What if the user is afk on the homepage of a media site, and not on an actual video?
* What if the user is afk on a video, and it's paused?
##### Enhancements
These are here to try and solve for some of the problems presented under disadvantages.
* User-defined or user changeable lists and filters
* The repo still maintains a list, but users have the ability to add items to theirs without waiting for a pull request to merge and a new release.
* There are a variety of flavorful solutions to this that I will not go into
* Combine with monitoring hardware to detect if a video might be paused
#### Monitoring Hardware
Monitor audio output to see if a video is playing.
##### Advantages
* Simple. May not be easy to implement, but is a simple solution to the problem
##### Disadvantages/Pitfalls
* What if the user is listening to music, like spotify, and is afk on a media player?
* What if the user is playing music from a media site like YouTube?
* Difficult to implement?
* Monitoring multiple audio devices necessary?
##### Enhancements
* Combine with site/application tagging
# General Enhancements
These are enhancements that could apply to any solution, to increase accuracy and to enable the user to correct mismatches and errors.
#### User-Defined Lists & Filters
Let the user create/modify the list of sites/applications, and/or the patterns used to match them.
* Takes burden off of developer to maintain accurate lists and patterns to meet everyone's specific needs
* I would still expect than an "official" or pre-defined list of items and patterns would be bundled or downloadable
* Some passionate users can open issues to merge items and patterns back into the repo with the dev curating them, or just to share them.
#### Tagging and Pattern Matching
This goes above and beyond, but would really turn this into a **much** more powerful tool.
Instead of just solving the video problem. Create an extendable solution that encompass the general problem category that the video problem is part of. This would be in the form of tagging, being able to automatically tag domains & applications with predefined or user defined tags. This can be facilitated with pattern matching lists, and depending on the data's schema/format could be applied to already existing data greatly enhancing it's utility.
As an example, time in VLC, YouTube, or Netflix could be tagged as `video`, which gives users the power to filter this time separately, combine it in reports, or to more easily correct collection errors.
This of course could be setup to be user-manageable, with points listed in the previous section.
# Conclusion
I believe the ability to capture time spent consuming video-based media will have an impact on the future usability of this project as these sorts of services continue to expand and bring in more and more people. Solving this problem can not only provide a solution to this problem, but could also greatly enhance the utility and power of this application.
What are your thoughts? (please to not be automarking this as closed, this took some time and effort to create).
A larger afk time can be set, check this thread: There's no data when I'm watching a video on youtube - #11 by GoodCheeseCat
However I would even more appreciate if Teams would be recognized as “work” just as YouTube is … This would also keep up the tracking precision of the afk times (no need to adapt the time out).
Thank you very much. But isn’t the afk time a global parameter? I.e., is it possible to set different values for different applications?
Dear Developers, Thanks for this useful app.
I’ve been tinkering around with it, and have managed to create a reasonable map of my screen time. However, I still have a problem that video times are not being logged despite " audile as not afk" patch marked above as the solution.
I’m not using a browser for viewing the videos, but a MacOS application called “WebCatalog” that converts websites to apps. Hence my streaming services are reflecting a lower time than actuals.
Any idea how I can work around this ?
Aravindhan