How to prevent Google Colab from disconnecting?
Edit 2:As of March 2021, none of these methods will work as google added a captcha button that randomly pops up after some time.
Edit 1:Apparently the solution is very easy, and doesn't need any JavaScript.Just create a new cell at the bottom having the following line:
while True:pass
now keep the cell in the run sequence so that the infinite loop won't stop and thus keep your session alive.
Old method:Set a javascript interval to click on the connect button every 60 seconds.Open developer-settings (in your web-browser) with Ctrl+Shift+I then click on console tab and type this on the console prompt. (for mac press Option+Command+I)
function ConnectButton(){ console.log("Connect pushed"); document.querySelector("#top-toolbar > colab-connectbutton").shadowRoot.querySelector("#connect").click() }setInterval(ConnectButton,60000);
Since the id of the connect button is now changed to "colab-connect-button", the following code can be used to keep clicking on the button.
function ClickConnect(){ console.log("Clicked on connect button"); document.querySelector("colab-connect-button").click()}setInterval(ClickConnect,60000)
If still, this doesn't work, then follow the steps below:
- Right-click on the connect button (on the top-right side of the colab)
- Click on inspect
- Get the HTML id of the button and substitute in the following code
function ClickConnect(){ console.log("Clicked on connect button"); document.querySelector("Put ID here").click() // Change id here}setInterval(ClickConnect,60000)
For me the following examples:
document.querySelector("#connect").click()
ordocument.querySelector("colab-toolbar-button#connect").click()
ordocument.querySelector("colab-connect-button").click()
were throwing errors.
I had to adapt them to the following:
Version 1:
function ClickConnect(){ console.log("Connnect Clicked - Start"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click(); console.log("Connnect Clicked - End"); };setInterval(ClickConnect, 60000)
Version 2:If you would like to be able to stop the function, here is the new code:
var startClickConnect = function startClickConnect(){ var clickConnect = function clickConnect(){ console.log("Connnect Clicked - Start"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click(); console.log("Connnect Clicked - End"); }; var intervalId = setInterval(clickConnect, 60000); var stopClickConnectHandler = function stopClickConnect() { console.log("Connnect Clicked Stopped - Start"); clearInterval(intervalId); console.log("Connnect Clicked Stopped - End"); }; return stopClickConnectHandler;};var stopClickConnect = startClickConnect();
In order to stop, call:
stopClickConnect();