topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday March 29, 2024, 3:25 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: VS Code extension to record (and play) coding sessions - P.S. no "video capture"  (Read 2696 times)

insert_nick

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 76
    • View Profile
    • @insert_nick
    • Donate to Member
I'd like to have (and use) a VS Code extension to record (and play) coding sessions.
I mean, not a video capture (like e.g. the Chronicle extension does), but a true record of any event happening in VS Code (writing it e.g. in some JSON file), and a true play back of the same events (with the possibility of pausing, stopping, speed up, slow down, skip 10 seconds forward and backward, etc.).

The closest thing I've found is the "VSCode Hacker Typer" extension by jevakallio (Github), which also has an interesting fork by nodename (Github).

But that doesn't work with multiple files, thus making it just a gimmik - while it would be close to be a useful tool.

There's also a talk by the author (jevakallio):
Writing Code like a Real Hacker - Reactivate London - October 2018 (Youtube)

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,896
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
It's a great idea.

insert_nick

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 76
    • View Profile
    • @insert_nick
    • Donate to Member
Thanks for your comment.

I'd like to add some reasoning behind this request:

That would be different from having some "usual" video capture of a coding session: that's a "fully locked" environment, too much detached from the actual experience. The video experience feels not "true", it doesn't create full involvement, and our brain understands and absorbs things with less simplicity when the experience is "detached". One has to be more involved, should be able to scroll up and down through the code in any moment during the "play" experience, should be able to create his own bookmarks and navigate through them, should be able to make little changes to the code and try them, just to figure out something unclear, and then continue, etc.

For example for teaching something, one could prepare a tutorial as a repository with a "recorded coding session" included, to teach how to use that library or that framework etc.
And for learning something new, one could download a recorded coding session and "play" it, with all the features that will be allowed in that kind of experience.

A feature that I would love to be included in such a tool would be the possibility for the recorder to record audio while recording the coding session, and that would be attached to the right points (e.g. a voice comment while writing some lines). And then the possibility to render it in subtitles to, so to enable subtitles in the "play" experience.

Another feature would be a live chat with the session creator, with the possibility to instantly live share the VS Code session with him/her. But that would probably be in the space of monetization possibilities (otherwise it'll be unlikely to find someone ready to reply on the other side), e.g. a learner could one-time pay for 30 minutes of a chat/call session, or make an annual subscription that allows several sessions, etc. And there could be a whole marketplace of free recorded coding sessions for any topic, where the authors could earn from these live on-demand chat/call sessions, and the author/maintainer of the service could keep a cut of that.

This is one of the uses, then there would be others in other fields.
For example, a tool to remind to oneself how something he has written works or should be used: a kind of narrated documentation of the code of projects, that is easier to produce while one is working on it, also with little storage requirements (because everything would be a small JSON) , except the audio files that can anyway be compressed a lot, especially because they're just voice and don't require it to be crystal-clear (I'd prefer small size for this use, something that would keep the whole thing in "some" megabytes).

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,186
    • View Profile
    • Donate to Member
This isn't exactly what you asked, but I think you could approximate it from this:

https://marketplace....sls-contrib.codetour

CodeTour 🗺️
CodeTour is a Visual Studio Code extension, which allows you to record and play back guided walkthroughs of your codebases. It's like a table of contents, that can make it easier to onboard (or re-board!) to a new project/feature area, visualize bug reports, or understand the context of a code review/PR change. A "code tour" is simply a series of interactive steps, each of which are associated with a specific directory, or file/line, and include a description of the respective code. This allows developers to clone a repo, and then immediately start learning it, without needing to refer to a CONTRIBUTING.md file and/or rely on help from others. Tours can either be checked into a repo, to enable sharing with other contributors, or exported to a "tour file", which allows anyone to replay the same tour, without having to clone any code to do it!



You'd have to have something built into anything other than just a tour to make sure someone didn't use it for malicious purposes.

insert_nick

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 76
    • View Profile
    • @insert_nick
    • Donate to Member
Yes I know the CodeTour extension, and I've also used it.

Though, it's not what I'd like to exist. CodeTour is useful when you have some code fully ready, and you want to explain it to someone or yourself. But it takes quite a lot of time to prepare something well done. Also, you wouldn't make explanations of everything, because it would make a lot of steps. And the step-by-step play feature wouldn't be as enjoyable as looking at the actual code being written and grow.

The extension I'm writing about, instead, would be able to capture one ore more coding sessions, that could also be the whole creation of a project. And it would be able to add captions, audio, etc. attaching them to the timeline of the recording, and keep the creator and also the user able to edit them, add more, modify the code, make cuts to the timeline, etc. The user (who can be the creator himself or another person) would be able to use the "play" feature in order to experience something like the very same coding session/s, with more involvement, full awareness of how and when any line of code is born in the project.

To prepare the "core capture", the creator shouldn't make much more than working at the project as he would, regardless of the fact that there is an extension recording the work. He/she could also think and explain with loud voice while working, using a record audio button. Then he/she could make the play experience better and easier to follow and understand by integrating with more audio explanations, use captions somewhere, make "cuts" (that would actually play the session from one point to another point with infinite speed, thus reducing that part of the timeline to a zero length), and using whatever cool feature the extension will offer.