"Reset Watched" Option available?

I’m thinking about what I will do when I finish all of the videos that are offered. I know more are added every day but eventually I will run out in a couple months with one hour a day. I was considering starting over at that point especially now that there is a difficulty score for each video. I wanted to now if there was a way to reset the videos to being “unwatched” so that I can go through them again without using random or having to manually keep track of which videos I’ve seen twice so that I don’t watch the same few videos multiple times.

Hopefully I’ve made sense. If anyone has any other suggestions on what to do please let me know.

In case it’s relevant, I do roughly 2.5 hours minimum a day between CIJ, reading, intensive immersion, and free flow immersion.

3 Likes

Hi, I noticed a similar request on Discord recently. Please check this message and the ones that follow.

1 Like

I solved this problem myself by adding all the watched videos to a playlist and then I created a Selenium IDE script that would click on each, and then unclick “watched”. Selenium IDE is a UI Testing Tool that plugs in to Chrome Browser (or other browsers as well). It was slow (and I put in a moderate speed delay so as to not accidentally overwhelm the server), but it worked well.

Here is the steps for my selenium IDE:

You will want to change the “times” target value to the # of videos in your playlist.

Below is the saved configuration snippet. If you copy it into a file and save it as “Unwatch CIJapanese Videos.side”, you should be able to import it into Selenium IDE and it work for you.

{
  "id": "b412a91f-a815-436a-8ecd-12484df16502",
  "version": "2.0",
  "name": "Unwatch CIJapanese Videos",
  "url": "https://cijapanese.com",
  "tests": [{
    "id": "9f85cbfc-388f-46dd-8743-adaf4d84596e",
    "name": "Unwatch first video in playlist",
    "commands": [{
      "id": "7a639fae-bf34-48bb-a58c-f202bf98030c",
      "comment": "",
      "command": "times",
      "target": "10",
      "targets": [],
      "value": ""
    }, {
      "id": "e5c59406-7372-43a7-b095-6fd3621e8aa0",
      "comment": "",
      "command": "open",
      "target": "/watch",
      "targets": [],
      "value": ""
    }, {
      "id": "2dc6c1d5-14be-482e-bdcb-4d140ee6078f",
      "comment": "",
      "command": "setWindowSize",
      "target": "1440x1267",
      "targets": [],
      "value": ""
    }, {
      "id": "00e8dc73-cd62-4228-a4f0-a97a237f054d",
      "comment": "",
      "command": "mouseOver",
      "target": "css=.flex:nth-child(1) > .thumbnail .thumbnail",
      "targets": [
        ["css=.flex:nth-child(1) > .thumbnail .thumbnail", "css:finder"],
        ["xpath=(//img[@alt='Video thumbnail for 私の家族 My Family'])[2]", "xpath:img"],
        ["xpath=//div[@id='site-wrapper']/main/div/div[4]/div/div[2]/div[2]/div/div/div/a/img", "xpath:idRelative"],
        ["xpath=//div[2]/div/div/div/a/img", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "1bd23684-5abe-4766-959b-1ed1e9509ee4",
      "comment": "",
      "command": "click",
      "target": "css=.flex:nth-child(1) > .thumbnail .thumbnail",
      "targets": [
        ["css=.hide", "css:finder"],
        ["xpath=(//img[@alt='Video thumbnail for 私の家族 My Family'])[2]", "xpath:img"],
        ["xpath=//div[@id='site-wrapper']/main/div/div[4]/div/div[2]/div[2]/div/div/div/a/img[2]", "xpath:idRelative"],
        ["xpath=//img[2]", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "5c0773ff-f81c-4f85-9a59-8e35582daa7d",
      "comment": "",
      "command": "mouseOver",
      "target": "xpath=//button[contains(.,'Watched')]",
      "targets": [
        ["css=#M3OBJ5Qndr > .btn", "css:finder"],
        ["xpath=//div[@id='M3OBJ5Qndr']/button", "xpath:idRelative"],
        ["xpath=//div[2]/button", "xpath:position"],
        ["xpath=//button[contains(.,'Watched')]", "xpath:innerText"]
      ],
      "value": ""
    }, {
      "id": "e428e185-8a6d-45c7-ae6e-af8c03aa7c91",
      "comment": "",
      "command": "click",
      "target": "xpath=//button[contains(.,'Watched')]",
      "targets": [
        ["css=.btn-ghost-primary > .mr-1\\.5", "css:finder"]
      ],
      "value": ""
    }, {
      "id": "15612e88-3c06-4dde-82f2-03d8d21103d6",
      "comment": "",
      "command": "open",
      "target": "/watch",
      "targets": [],
      "value": ""
    }, {
      "id": "bbabbe7f-bac2-4b70-a368-6bc609d60d79",
      "comment": "",
      "command": "mouseOver",
      "target": "css=.flex:nth-child(1) > .thumbnail .thumbnail",
      "targets": [
        ["css=.flex:nth-child(1) > .thumbnail .thumbnail", "css:finder"],
        ["xpath=(//img[@alt='Video thumbnail for 私の家族 My Family'])[2]", "xpath:img"],
        ["xpath=//div[@id='site-wrapper']/main/div/div[4]/div/div[2]/div[2]/div/div/div/a/img", "xpath:idRelative"],
        ["xpath=//div[2]/div/div/div/a/img", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "986e6432-2f70-4cc7-b2b8-7119ad6fec81",
      "comment": "",
      "command": "click",
      "target": "css=.flex:nth-child(1) > .thumbnail > .playlist-button",
      "targets": [
        ["css=.flex:nth-child(1) > .thumbnail > .playlist-button", "css:finder"],
        ["xpath=//div[@id='site-wrapper']/main/div/div[4]/div/div[2]/div[2]/div/div/div/button", "xpath:idRelative"],
        ["xpath=//div[2]/div/div/div/button", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "019766d9-5fe2-4d3d-9745-c7bb8a6629da",
      "comment": "",
      "command": "end",
      "target": "",
      "targets": [],
      "value": ""
    }]
  }],
  "suites": [{
    "id": "ed0ec4c2-9cb7-4301-b88e-4d7e7154b004",
    "name": "Default Suite",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["9f85cbfc-388f-46dd-8743-adaf4d84596e"]
  }],
  "urls": ["https://cijapanese.com/"],
  "plugins": []
}

But just got the discord channel, and what Benjamin links to above looks way easier. I’ll try that if I have to do it again.

That’s pretty cool! Good job getting it to work :grin: and thank you for caring to not overwhelm the server :sweat_smile:.

Clearing watch status via a playlist is a nice idea :astonished_face:. I was planning on implementing a “Reset Watched” option soon, but I didn’t think of doing it by playlist. Even though you used it just for adding all the watched videos together, I still like that idea :smiling_face_with_sunglasses: and will implement it then. Thank you for it!