Bitcasa Everywhere Chrome modification for infinite queue

Addendum 2014-05-21: I received a mail from Bitcasa informing me that this modification polls Bitcasa’s services so much that it has undesired side effects. Contrary to what you might believe it was not a threat or any sort of lesson in legal issues but a simple request backed by very reasonable, technical arguments. If you are not familiar with how the modification worked, here is the short version: BCE Mod created a background timer that would poll Bitcasa’s endpoint every x seconds to update it’s internal status, log you in, trigger new downloads and so on. One person using this method is not a problem. Add an undefined number of people and the trouble starts. Every user with this mod increases the stress on Bitcasa’s web interface considerably due to the unending stream of requests. Now here is where my dilemma starts: I was out to improve the user-experience and show that it does not take much to do so, not to harm the service I want to prosper for years to come. Unfortunately though, that seems to be the case now, making the life of the good folks at Bitcasa harder – not cool. So please understand that I will not offer or work on this modification anymore. I do recommend that if you still use the modification, you should uninstall it immediatly because it will not work as intended anymore; all it will do at this point is lock you out of My Bitcasa for a few minutes due to the number of requests. If you are interested in…

  • An infinite queue for your Bitcasa Everywhere downloads
  • Automatic login to My Bitcasa
  • Tighter integration with 3rd party services
  • A more up-to-date Bitcasa client update check (possibly an official announcement for each new release via Twitter?)

…please vote for these features on the official feature request section! The more votes a feature gets, the better! If a feature is not feasonable you will receive official word on why it will not make the cut. Also consider voting for the addition of some kind of file-download extension to Bitcasa’s API, giving third-party developers more freedom to interact with Bitcasa without having to play the “middle man” for file caching. Again, sorry to everyone at Bitcasa for the inconvenience caused and sorry to everyone who came here expecting a turbocharger for their Bitcasa Everywhere!

Published by

Tsukasa

The fool's herald.

70 thoughts on “Bitcasa Everywhere Chrome modification for infinite queue”

  1. Hello!

    Thank you so much for writing this modification, it has all the features I have been looking for eversince I bought Bitcasa for a year, I can’t believe you could modify it yourself in such an awesome way.

    Unfortunately, the downloads are not properly added for me. I just tested with the regular extension again and it works, while your modification gives the following error:

    An error occurred
    The server experienced an error. Please try again later.

    Any idea why that happens?

    Thanks again for your awesome work.

    1. Heya Strainer,

      I think the problem is because I removed an option that was available a long time ago. I modified the extension to support multiple backends, that was an interesting thing to do in the transition period between portal.bitcasa.com and my.bitcasa.com as it allowed for 6 parallel downloads (actually more like 10 if you rapidly started them, both systems ran independant of each other but allowed for the same buggy add behaviour).

      Here’s how to fix/check for the option:
      – Open your popup by clicking the Bitcasa icon in the toolbar, in the popup right click anywhere and select “Inspect Element”.
      – This opens the Chrome Developer Tools, go to “Resources” tab, expand “Local Storage” and select “chrome-extension://jb…..”.
      – On your right side you should see the storage keys. If there is no key named “bitcasa_backend” just double-click one empty row and type it in, give it the value https://my.bitcasa.com
      – If the key is already there, make sure the value still points to https://my.bitcasa.com
      – Check for another key called “encode_uri”. If not available create it with an empty value; if it exists make sure the value is empty.
      – Close the Developer Tools and log-out and log-in again.

      You will notice the queue is also saved there als a key-value pair; if you ever have trouble with the queue, you can hit “Pause” and mess with the [id]bitcasa_queue and [id]bitcasa_queue_ids until it matches your idea of how the structure should be – or empty it altogether (yes, I’m aware this isn’t exactly end-user friendly – shame on me).

      Also, if you suspect that Bitcasa may act up, try navigating to https://my.bitcasa.com/uploader/get-upload-status and see whether you get the status page or the black error page.

      As for the modification itself: Since all the html and javascript source-files come as part of the extension I figured it would be fair game to tinker with it. That also means you can see what was modified and experiment yourself. πŸ™‚

      1. Thank you so much for your kind response, everything works perfect now. Really an awesome mod with features I have asked for several times already on the official Bitcasa boards and feature request pages.

  2. Great mod! could you make a mod that clicking on the context menu add the file to the queue instead of download?

    1. Addendum: You can grab a version with support for right-click queueing here.

      I’ve updated the post to reflect the change.

      Due to Chrome’s restrictions the Bitcasa Everywhere menu entries are now a separate submenu. If you prefer an option switch to change between queuing and directly downloading to keep it to one menu entry, just leave me a comment and I’ll alter the behaviour.

  3. Amazing! Just Amazing! You are officially my hero! 2013-7-20 is doing exactly what I always wanted! I’m using with put.io to skip downloading locally first, and this is exactly what I have been trying to do with multiple services and numerous failed apple scripts! I never even considered modding the chrome extension! GRRRREEEAAATTT!!!!! And now for the request:

    Would it be possible to copy a (massive) list of download links (generated by put.io) and add to queue for batch uploading? And, maybe designate/create a specific folder within infinite drive?

    You made my life so much easier! I really can’t say thank-you enough! Add a paypal link and I will buy you lunch! Really, sooooo awesome!

    1. I do not use put.io but took a brief look at the provided Chrome extension and the documentation. I don’t see anything that would prevent bringing those two services together. One could completely automate queuing new items from put.io by remembering the ever-increasing unique ID of each put.io file. Code-wise you’d have to copy the _request code from Easy put.io, implement a /file/list call, parse the returning files for content-type != “application/x-directory” and add the /files/-id-/download request to the Bitcasa queue by using addToQueue(dl_url).

      Personally I would advise to use a Windows VPS with a Bitcasa desktop client installation and some glue-code to do this, though. It has the advantage that your folder structure will stay intact on your Infinite Drive.

      Unfortunately BCE does not allow the creation of directories or changing the download location. There is a hardcoded path that will always be created and seems to be a bit special (the Downloads folder does not seem to have a real creation/modification date and even after deleting it, the newly created folder will always retain the original hash of it’s predecessor).

  4. hi, i would first like to thank you for this mod, it has made my life so much easier πŸ™‚

    I replied here, because i hope you could make that option to change between queuing and directly downloading possible, or just make it do “add to queue” by default, because it seems to me that it works even though i have nothing on the queue and i just want to download the item.

  5. Great work – that’s really amazing!
    I have some problems with the latest release and will use the previous version. The current – on my system – cannot show the current downloads (“Loading” all the time) and the link to My Bitcasa leads to opening the extensions popup as a webpage.
    However, great work so far! I love this extension!

    1. Heya Markus,

      sounds like a javascript problem. I’ll look into it!

      Edit: Tried it on 5 machines, worked fine on Windows 7, the only ones that gave me trouble were Windows Server 2008 systems. What operating system are you using?

      1. Hey Tsukasa,

        I am using Windows 8 64bit and I will now uninstall the extension and install it with your latest release and send you the details within the next minutes….

        Markus

      2. Hey Tsukasa,

        here I am back.
        I guess it wasn’t a problem with your extension but with Bitcasa cause the problem currently not appears. I also had some trouble cause I got the message that there was a server error later last evening.

        I already opened a ticket to Bitcasa support and they wrote me sth that might be interesting for you as well:
        Those 3 items in the queue are not “guaranteed” but if there are too many people adding downloads it might hang. Here’s the quote from Bitcasa Engineer I am in direct contact with regarding other probs:

        “””
        Hi Markus,

        Sorry for the delay. The queue is all on the server side which is hard coded to limit to 3 so there is no way to change that. As for the delay from changing over from queued, this can sometimes be due to the number of workers/processes we have available to do the downloading directly to our servers.

        I will talk to our developer who created the extension and see if there is anything that can be done to improve feedback about the queue. If you have any links that never get downloaded and you are able to share them with please do so. We have seen some links cause issues but its difficult to debug without actual links.
        “””

        So everything seems to be fine with your extension.

        Just one thing to mention, Tsukasa:
        Great work πŸ™‚ I love your extension πŸ™‚

        Markus

      3. Hey Tsukasa,

        one prob:
        Added about 1050 links. Now I reached about 150 remaining and the plugin does not add the queue items to the download list any more automatically.

        Manually works – I restarted Chrome but it didn’t work. Any idea? I have 46 remaining in queue now and will not add them manually any more if you need any data from the plugin.

        Thx
        Markus

      4. Heya Markus,

        did you pause the queue (indicated by the badge background in the toolbar being green instead of orange)?

        Another thing you could check/do: Open the local storage for the extension (open the popup, right click, select “Inspect Element” and go to Resources – Local Storage), copy all the links from [your_id]bitcasa_queue and paste the string to http://json.bubblemix.net/ to get a clean list of links, empty bitcasa_queue and bitcasa_queue_ids (set the value to []) and add the cleaned links again via the popup’s input.

  6. Hi,

    Using Windows 7. Copied and pasted the location to extract files to since the actual folder couldn’t be located. Not certain where to look?

    This is a great thing you have done. Any assistance getting this running would be deeply appreciated.

    Thank You

    1. Open an Explorer window, enter the following location into the address bar: %APPDATA%

      It should send you to [yourname]\AppData\Roaming.

      Go up on level to [yourname]\AppData and enter the Local directory. From there, follow the instructions in the post. πŸ™‚

  7. IT WORKED!!! VERY IMPRESSIVE RESULTS!!! YOU’VE MADE LIFE BETTER!!! THANK YOU AGAIN!!!

    OAuth Token? Using Github a code was made. It’s not very clear what to do next aside from learning how to code obviously. Excellent inspiration of course. The code can’t simply be applied? Is there a way to speed this up. it’d be good to participate in the experiment…

    πŸ™‚

    1. An OAuth token is a simple string that authenticates you against a service without having to provide your real credentials. It’s application-agnostic, so your Github token won’t work with put.io.

      The recommended way to use the put.io integration goes like this:
      – Install Easy put.io and allow Easy put.io to access your put.io account.
      – Click on the badge in the toolbar, right click in the popup and select “Inspect Element”.
      – Select the “Resources” tab, expand “Local Storage” and select “chrome-extension://ekbo…”.
      – You will see a row putio_token and a string value right next to it. Double click the string value so you can edit it and copy the entire string to your clipboard.
      – Open the Bitcasa Everywhere options, paste the string and tick the checkbox for put.io integration. Don’t forget to save the options.
      – Add a few torrents to put.io. As soon as they finish, they should automatically queue up in Bitcasa Everywhere.
      – Please note that BCE will *not* delete any files on your put.io account after pulling the files. That’s because Bitcasa Everywhere is a bit flakey and sometimes does not display all files in your account despite having downloaded them.

      I’ve improved the put.io support a bit to ensure every torrent (even when a newer one finishes before an older one) gets queued, I will probably upload an updated version as soon as I have worked out some CSS kinks.

    1. Sorry for the confusion. Easy put.io got updated and uses Chrone’s Storage Area API instead of localStorage now.

      To get your token, open the Easy put.io popup, right-click, select “Inspect”, go to the console and paste the following command (it’s all one line):

      Storage.getData(function(storage){if(storage[“putio_token”]){console.log(storage[“putio_token”])}})

      If you are already logged-in to Easy put.io, you should see the token in the console.

    1. Hi! Great work!
      But can you please change the way the download link will be shown? – instead of:
      http://dlus4.rpnet.biz/generate/samplefol
      let it show up this way:
      //…/folder/myfile.mp3

      If a file gets “stuck” and download not starts the beginning of the address is mostly useless, but to see the filename is important so see, which file to download again!

    2. If you’re talking about the Download tab: Unlikely to happen (not enough data from BC); if you’re talking about the Queue tab: Good suggestion, I’ll implement that. πŸ™‚

      Thanks for your feedback!

    3. Hi!

      Daniel, seeing the URL is very helpful to me, so I think a combination of both beginning of URL and name of the file with extension can be better, I don’t know if possible…

      Kind regards and good job Tsukasa!
      Francisco

  8. eek! i added just over 100 queued files and its now just saying error, no files are transfering and no files are queued and i cant seem to do anything about it.

    im sure i had read somewhere that 100 queued item caused a problem but now i cant find where i saw it.

    can anyone help me got it back to working, hopefully without wiping the queue in the process.

    1. Heya mark,
      please navigate to this URL and check whether you get back some basic status informations or an error page: https://my.bitcasa.com/uploader/get-upload-status

      If you get an error page, there’s something wrong on Bitcasa’s side of things with nothing you can do to resolve it.

      In case Bitcasa reports no problems and you suspect the queue fubar’d on you, you can backup and restore it.

      To backup your queue, please open the popup, right-click, select “Inspect element”, navigate to the “Resources” tab, select Local Storage – chrome-extension://jbeb… and backup the 2 values *_bitcasa_queue and *_bitcasa_queue_ids. To re-add the links, follow the instructions from this comment.

    2. okay, it seems im getting the “500” error mentioned at the begining. so, what if anything can i do about it? ive even tried uninstaling the addon all together and going back to the stock one and it wont work either. it wont work on a different machine. so i now currently cannot use the direct uploading funcionality at all.

      please, please help!

      1. As I already mentioned there is absolutely nothing you can do about it. It has nothing to do with Bitcasa Everywhere vanilla or this mod, it’s a bug on Bitcasa’s backend.

        I had this problem from February all the way to the end of March until Bitcasa rolled out a new version of their backend which fixed a few of the issues.

        The message usually appears when you added a URL that contains characters Bitcasa cannot process properly. The result is that the download starts, breaks your account and therefore disallows the use of Bitcasa Everywhere. The real hit is that usually only one download is affected, might even complete but due to the fact that the backend is broken and does report error 500, all other downloads and/or control over your downloads is unavailable.

        You can manually start a download from your queue. It will not show up in the downloads window but should complete and be available in your Downloads folder. It’s a little sad this problem still persists, half a year later…

  9. ah. well thank you for the explanation. i appreciate your help but im so furious with bitcasa. i thought i had found a way to get around the painful slow upload and random not working but it seems not.

    1. when you mention manually adding something, is there anyway to control what link it tries to accept? i use megashare and if i right click the download icon and tell to download to bitcasa, all i get is the .png icon and not the file.

      1. Despite it’s few shortcomings Bitcasa is a fantastic offering – especially considering the price. Bitcasa recently started sending out the API surveys, so there’s hoping for a first API draft at the end of the year.

        As for manually adding links, the easiest way to do so is to add them through the normal “Add Links” input in the popup. The downloads will automatically be queued. If you switch to the queue tab you can then manually start a download by clicking the “play” icon to the left of an item. It’s not a replacement for a working backend but at least allows you to keep track of your downloads. I also recommend to set the queue mode to pause.

        I cannot comment on Megashare links but some share hosters do not seem to play nice when the host requesting the file suddenly switches to Amazon AWS.

        To select batches of links, I use Linkclump to copy the links to my clipboard so I can paste them into the popup.

  10. ahhhhhhhhhh

    okay, got it half working. its moving files i think but obviously cant see what its doing but a couple of files have appeared so something is. thank you for the help.

    1. No, that’s what the My Bitcasa web portal is for. The API used by Bitcasa Everywhere only works for files already available through HTTP or FTP.

      You can try experimenting with this project; I haven’t looked at it myself, though.

      To move large amounts of data I have a simple AutoIt script that monitors a directory, checks the state of Bitcasa (whether the client is still uploading or has finished) and ensures that only an amount less or equal to the maximum cache size is being copied to the Infinite Drive. This approach works absolutely flawlessly, it’s the closest thing you will get to a queue. The downside: This requires a desktop installation of the Infinite Drive client.

  11. Strange thing happened today. I can’t seem to download and I’m getting ” an error occured while downloading ……. ”

    However I can download from bitcasa’s website eg https://www.bitcasa.com/download/mac

    All other sites gives me an error. I tried clearing cache, reboots, reinstall of extensions etc.

    1. Me, too !
      Happened around 24 hours ago – since then I can’t use the Everywhere Extension to download!

      Other users are affected, too ?

  12. I have the same problem, my Bitcasa Chrome Extension has stopped working
    In attempting to fix the problem – I reinstalled Chrome and Bitcasa everywhere but did not fix the fault
    It looks like the Bitcasa Chrome Extension or the Bitcasa site has a problem
    I did notice that chrome seems to have been updated yesterday as my English installation had changed to another language

    Tsukasa

    Thank you for your efforts

    1. (Comment directed at Dave and Daniel as well)

      Since Bitcasa Everywhere has not been updated on the Chrome Web Store, it’s most likely a problem on Bitcasa’s backend. Just take it easy, wait for a few days and try again; no need to uninstall/reinstall the extension. If we are lucky Bitcasa is in the process of deploying a new version of BCE and therefore does not accept new worker threads.

      In this specific case the Chrome version is irrelevant, BCE continues to work fine on the stable channel with Chrome 29. πŸ™‚

  13. Tsukasa Wrote – In this specific case the Chrome version is irrelevant, BCE continues to work fine on the stable channel with Chrome 29.

    I am very interested to know how you managed to stop Google updating your chrome version 29

    I have tried using earlier Chrome and Chrome Portable Versions and there is no way I can stop them updating, I even deleted the Chrome update folder using regedit yet it still updated, I altered the keys in regedit with no joy

    I don’t have Group Policy Editor om my PC so I cant use the Google Update Administrative Template

    If you are able to assist me in any way I will be more than grateful for your input

    Thank you in advance

    1. Heya John,

      I keep Chrome up to date, the version installed on my machine is 29.0.1547.76 m (Windows). If you have a newer version of Chrome, you are probably on the beta channel (or on another operating system, version numbers slightly vary between the platforms). To switch between channels, you can use this guide.

      As for stopping automatic updates, I found this article on Google’s site.

  14. Tsukasa

    Thank you very much for your help
    I have tried everything to stop chrome updating and have had no joy, i gave up today after many hours of pulling my hair out
    I have know installed Iron and everything is up and running again
    The problems all revolve around Chrome not Bitcasa

    I recommend Iron as it is a much more secure browser

    Thank you for your great addon mod and your time, have a good evening

  15. This is really a great work that bitcasa should built in the first place. Will like to know if it possible to do a “save as” function as it will help with files management.

    Really like your work and million thanks and it really help saving lot of time just waiting for it to download.

    1. Heya Billy Soh,

      I have implemented the feature. Get the archive here. To activate the feature, go to the options and change the context menu behaviour to “queue and save”.

      Please note that there are still some kinks I need to iron out with this one which is why it is not listed as the latest release in the post. πŸ™‚

      1. Just try out the queue and save function, it a good function but it not what I mean. What I mean is when download/queue a file, you will be able to rename the file name before it download to bitcasa.

      2. Just hope the year end API will be able to do so.
        Anyway the queue and save function is still useful to me and really thank for the great work.

  16. Hi, can I use your extension to grab files that are being “pushed” by a server, after you press a dl button for example.
    I’d like to easily copy all my dropbox files to a bitcasa folder,…. Can your extension help me do that?

    Thanks;)

    Bl.

    1. Not by itself but it absolutely works if you install Linkclump.

      Please make sure to configure Linkclump so it copies the URLs into your clipboard. Also make sure you have enabled Cookies in the Bitcasa Everywhere options. Log in to Dropbox’s web interface, go to the folder with your files and draw Linkclump’s rubberband over all the filenames you want to transfer. Paste the links into BCE’s URL input and hit “Add”. The files should be pulled.

      1. you ARE the man!!!

        The only pb is that it does not dl folders.

        BUT! …. IF you could find a way to script server or client-side, for automatic copying of entire dropbox/ cloud accounts to the bitcasa, then you shall be rich soon my friend…

        I’d say contact me and we start a business tomorrow!! πŸ˜‰

      2. Migrating data from other cloud-storage providers to Bitcasa should be something Bitcasa offers by itself, IMHO.

        With the Bitcasa Everywhere API there is currently no way to contain directory structures (which is quite the headache for me) but I have high hopes for the API that is supposed to come out at the end of the year.

        Right now my best workaround involves a Windows VPS and a bit of Auto It scripting. I have mirrored my Dropbox into Bitcasa and moved my files from Wuala as well. Automated database backups work fine as well. The Auto It script decides how much data is copied at once to keep it under the Bitcasa cache limit, creates the directories and slowly works it’s way through a directory structure.

      3. Yes, well i dont’ know if i have the time to go into auto-it, although it seems like a great piece of software. have you submItted your ideas /scripts to bitcasa? Maybe they could hire you…

  17. I installed your extension and for a day it worked flawlessly!, but now I get “An error occurred” over an over again. I’ve tried going back to the original extension, but I still get that error. I even have installed chrome again, but no fix.

    Any ideas? I’m really worried that not even the original extension is working now,

    Thanks,

  18. I have experienced a great solution if you are stuck in downloads or it doesn’t work at all.

    This clears your Uploaded files on server side:
    https://my.bitcasa.com/uploader/clear

    I had the prob. that I get the completed message of a file again and again …

    Maybe Tsukasa can integrate a button into the extension like “Clear all Uploads” – to reset the Uploader server side if one experiences problems πŸ™‚

    1. Heya Daniel,

      thank you so much for that information, I will absolutuely add this!

      Edit: It’s available. See the new paragraph “Troubleshooting” in the extension’s option page. The two new buttons will allow you to reset a.) Bitcasa’s downloads and b.) your local queue. By keeping the buttons in the option screen I want to ensure that no user will reset their downloads/queue by accident.

Leave a Reply