dustin / gopro

Tools for making the most out of GoPro Plus.
http://dustin.sallings.org/2020/04/29/gopro-plus.html
BSD 3-Clause "New" or "Revised" License
91 stars 12 forks source link

gopro: Prelude.read: no parse #7

Closed mateuszdrab closed 2 years ago

mateuszdrab commented 2 years ago

First of all, thank you for creating this tool! It saved me from having to manually download each video from the cloud, now that I'm about to cancel the subscription.

Just wanted to flag an issue to you, the gopro sync and gopro fetchall commands were failing with gopro: Prelude.read: no parse

I eventually figured out the list of all media and ran the refresh command on each of them, after that, I was able to download them.

A specific issue example:

gopro refresh xxxxx
I: Processing batch of 1
gopro: Prelude.read: no parse

Not sure exactly why it's failing, but my library of 65 items had 2 errors.

Perhaps if you added a printout of the response from the API request into the verbose option, it would be easier to figure out as adding -v currently doesn't do much.

I've got a month left on my subscription so happy to help you figure out why the error happens before all my content is deleted from there.

Regards Matt

dustin commented 2 years ago

Hmm... That's interesting. There aren't that many options. One of the areas that this might occur has to do with medium types that aren't in the original set I built code around. I see this now:

        PHOTO: "Photo",
        VIDEO: "Video",
        TIME_LAPSE: "TimeLapse",
        TIME_LAPSE_VIDEO: "TimeLapseVideo",
        BURST: "Burst",
        CHAPTERED: "Chaptered",
        LIVESTREAM: "Livestream",
        LOOPED: "Looped",
        LOOPED_VIDEO: "LoopedVideo",
        BURST_VIDEO: "BurstVideo"

Several of those won't be processable by my code. I can fix that relatively quickly and also perhaps make a better error in the case this grows again.

I've got a lot of media uploaded, but almost all of it is uploaded by my own tools, so I wouldn't have, e.g., a LoopedVideo upload because I just treat that like a normal video. I'm not even sure how to get some of these other ones, but at the very least, I can support them in code.

dustin commented 2 years ago

I'm uploading a change that includes support for these new types. You should be able to sync assuming that was the problem. Let me know if that's not the case.

mateuszdrab commented 2 years ago

That did the trick, it downloaded the missing video (that I previously downloaded manually). Thanks again for making this tool! Life saver, should be an official tool from GoPro. ❤️

Quick question, is there a difference between sync and backupall commands? I noticed the sync command was running downloads into a .cache folder but I already downloaded all content. Can I use the content form the backupall command to upload things back into gopro cloud in the future using gopro upload (will it upload the metadata)?