Coder Social home page Coder Social logo

alamantus / googlephotosexportorganizer Goto Github PK

View Code? Open in Web Editor NEW
72.0 3.0 2.0 1.72 MB

A (defunct) tool for merging and organizing exported Google Photos backups. Built with React and Electron!

Home Page: https://alamantus.github.io/GooglePhotosExportOrganizer/

JavaScript 99.13% HTML 0.87%
react google-photos google-photos-backup organization electron

googlephotosexportorganizer's Introduction

Hi, I'm Robbie Antenesse!

I'm a professional web developer, hobby game developer, conlang enthusiast, and maker of highly specific niche software.

If you like my work, Buy Me A Coffee!

googlephotosexportorganizer's People

Contributors

alamantus avatar ruslan5t avatar thejoshmuller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

googlephotosexportorganizer's Issues

Start Organizing Immediate Tick Mark

When the start organizing button is pressed, the loading line below instantly loads and presents a check mark. This also doesnt process the images
image

FSReqCallback.oncomplete(fs.js:160:23)

In step 3 (organize folders with re-insert exif enabled), I get the following error:

error

Also in the second step, some of the zip files do not seem to extract correctly: The check mark does not appear and there is an exclamation mark next to the progress bar (which is but fully filled). However, it is possible to proceed to the next step.

Wrong date format (DD/MM -> MM/DD)

Hi, I already found another solution here on GitHub (cmd tool), but there was an issue using this app (maybe due to my European region?). The date was fixed, but in the wrong format - the Date and Month were swapped (e.g. 12th of July (12/7) was changed to 7th of December (7/12)). Except for this issue great app!

Doesn't open on ArchLinux

Hi! I'm trying to run the program on ArchLinux but it just closes after a few seconds of opening it, and it spits this error out in the terminal:

creating window
(node:878902) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron.  See https://github.com/electron/electron/issues/23506 for more information
[878902:1130/232620.210859:FATAL:gpu_data_manager_impl_private.cc(445)] GPU process isn't usable. Goodbye.
fish: Job 1, './google-photos-export-organize…' terminated by signal SIGTRAP (Trace or breakpoint trap)

System Information:
Operating System: Arch Linux
KDE Plasma Version: 5.26.4
KDE Frameworks Version: 5.100.0
Qt Version: 5.15.7
Kernel Version: 6.0.8-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 2600X Six-Core Processor
Memory: 31.3 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7B79
System Version: 1.0

Zip Files Stuck Loading

Hi @Alamantus while I am unzipping the loading bar is done but the zip files are still loading. I am on macOS and using version 1.1.1. The zip files are 103GB and the output file is 83GB. Please help ASAP. Thanks

Some zip-files still loading after a while

Hi Robbie! First of all, thanks for your amazing app and the tutorial. <3

I'm trying to unzip my 25 parts from Google Takeout, but 8 of them still loading after a lot of time (never finished).
Is that a known issue or a problem with the zip files?

Screen Shot 2021-06-10 at 9 35 46 AM

Error organizing folders

When I try to "Organize Folders" it loads for a bit then just displays a complete progress bar with an exclamation mark. In the output folders there are just empty folders with no files in them. Is there any way to get error messages? If I output to the same folder it does start doing something but then crashes. I tried it on Windows, it does most of them but then crashes.

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Google Photos Export Organizer [7364]
Path:                  /private/var/folders/*/Google Photos Export Organizer_DEBUG.app/Contents/MacOS/Google Photos Export Organizer
Identifier:            com.my-website.google-photos-export-organizer
Version:               1.1.1 (1.1.1)
Code Type:             X86-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2022-12-13 12:19:02.5883 +0200
OS Version:            macOS 13.0 (22A380)
Report Version:        12
Anonymous UUID:        ES539B69-9131-06AA-A240SDRFD284F7095


Time Awake Since Boot: 45000 seconds

System Integrity Protection: enabled

Notes:
dyld_process_snapshot_create_for_process failed with 5

Crashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Codes:       0x0000000000000001, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [7364]

VM Region Info: 0 is not in any region.  Bytes before following region: 4419297280
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      UNUSED SPACE AT START
--->  
      __TEXT                      107692000-1076be000    [  176K] r-x/r-x SM=COW  ...ort Organizer

Error Formulating Crash Report:
dyld_process_snapshot_create_for_process failed with 5

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0   Electron Framework            	       0x10f84f1c1 ElectronInitializeICUandStartNode + 1310849
1   Electron Framework            	       0x112ed44f3 v8::internal::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*) + 755
2   Electron Framework            	       0x112ed4483 v8::internal::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*) + 643
3   Electron Framework            	       0x112fad105 v8::internal::Heap::FinalizeIncrementalMarkingAtomically(v8::internal::GarbageCollectionReason) + 1781
4   Electron Framework            	       0x10fe0eb34 v8::internal::Heap::builtin(int) + 4564
5   Electron Framework            	       0x10fdec910 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) + 96
6   Electron Framework            	       0x10fff0a93 v8::internal::RegExp::Exec(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSRegExp>, v8::internal::Handle<v8::internal::String>, int, v8::internal::Handle<v8::internal::RegExpMatchInfo>) + 32579
7   Electron Framework            	       0x110341798 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 484280
8   Electron Framework            	       0x110357f0b v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 576299
9   ???                           	    0x205a001d52af ???
10  Electron Framework            	       0x1102cbd58 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 2424
11  Electron Framework            	       0x110390fbb v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 809947
12  Electron Framework            	       0x1102f3d57 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 166263
13  Electron Framework            	       0x1102d1378 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 24472
14  Electron Framework            	       0x10fdb2d76 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 1286
15  Electron Framework            	       0x10fdb3ac3 v8::internal::Execution::TryCall(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Execution::MessageHandling, v8::internal::MaybeHandle<v8::internal::Object>*, bool) + 355
16  Electron Framework            	       0x10fdb3ba0 v8::internal::Execution::TryCall(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Execution::MessageHandling, v8::internal::MaybeHandle<v8::internal::Object>*, bool) + 576
17  Electron Framework            	       0x10fdc834f v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) + 463
18  Electron Framework            	       0x10fdc8150 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) + 32
19  Electron Framework            	       0x1124088b4 node::InternalCallbackScope::Close() + 388
20  Electron Framework            	       0x1124082c1 node::CallbackScope::~CallbackScope() + 49
21  Electron Framework            	       0x1124699c6 napi_ref_threadsafe_function + 2358
22  Electron Framework            	       0x10f6f9898 uv_random + 1432
23  Electron Framework            	       0x10f6fd520 uv_async_send + 944
24  Electron Framework            	       0x10f70eafc uv_free_interface_addresses + 2156
25  Electron Framework            	       0x10f6fd997 uv_run + 375
26  Electron Framework            	       0x10f84f7cc ElectronInitializeICUandStartNode + 1312396
27  Electron Framework            	       0x11088b429 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6029385
28  Electron Framework            	       0x110898b95 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6084533
29  Electron Framework            	       0x1108987a0 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6083520
30  Electron Framework            	       0x1108ca6e0 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6288128
31  Electron Framework            	       0x1108c71fa v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6274586
32  Electron Framework            	       0x1108ca0bf v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6286559
33  CoreFoundation                	    0x7ff8134f0bc8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
34  CoreFoundation                	    0x7ff8134f0b77 __CFRunLoopDoSource0 + 157
35  CoreFoundation                	    0x7ff8134f0951 __CFRunLoopDoSources0 + 212
36  CoreFoundation                	    0x7ff8134ef5cb __CFRunLoopRun + 929
37  CoreFoundation                	    0x7ff8134eebb0 CFRunLoopRunSpecific + 560
38  HIToolbox                     	    0x7ff81cdd0bd6 RunCurrentEventLoopInMode + 292
39  HIToolbox                     	    0x7ff81cdd0806 ReceiveNextEventCommon + 199
40  HIToolbox                     	    0x7ff81cdd0723 _BlockUntilNextEventMatchingListInModeWithFilter + 70
41  AppKit                        	    0x7ff816611b37 _DPSNextEvent + 909
42  AppKit                        	    0x7ff8166109b8 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1219
43  AppKit                        	    0x7ff816602ff3 -[NSApplication run] + 586
44  Electron Framework            	       0x1108cac76 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6289558
45  Electron Framework            	       0x1108c9c52 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6285426
46  Electron Framework            	       0x110899101 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 6085921
47  Electron Framework            	       0x1108777f9 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 5948441
48  Electron Framework            	       0x11360e944 v8::internal::compiler::ZoneStats::GetCurrentAllocatedBytes() const + 2057540
49  Electron Framework            	       0x1104ee692 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 2241202
50  Electron Framework            	       0x1104ea159 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 2223481
51  Electron Framework            	       0x1104b2401 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 1994785
52  Electron Framework            	       0x1104b2126 v8::internal::SetupIsolateDelegate::SetupHeap(v8::internal::Heap*) + 1994054
53  Electron Framework            	       0x10fcf572e ElectronInitializeICUandStartNode + 6186478
54  Electron Framework            	       0x10fcf5c32 ElectronInitializeICUandStartNode + 6187762
55  Electron Framework            	       0x10f70f108 ElectronMain + 136
56  Google Photos Export Organizer	       0x1076965bd 0x107692000 + 17853
57  dyld                          	    0x7ff8130e5310 start + 2432

Blank screen on startup

Hi, I found out about this tool from Reddit. As many I'm too looking around for a switch from Google Photo.

I've downloaded and extracted the program for Windows, but upon launch I am presented with a blank window as shown in the attachment. If there is anything else I can provide to help debug let me know.

https://i.imgur.com/vsDCJjD.png

Linux client doesn't create output

Hi, I'm on Manjaro and I have trouble using your tool. I used it on an exFAT external drive and it failed to create output.

Same results using ext4 as either source or target.

Using an SMB share as source and exFAT as target at least resulted in creating a what seems to be meaningful folder structure. Problem is that those folders are all empty. Still, the SMB process (comig from a raspberry pi as server) took quite long so it looked busy combing thru 90 GB of pictures. What else can I try?

Also, Manjaro / Thunar fails to recognize your executable file as such so I had to ./launch & it from command line leaving me with a blocked terminal. But that's more of a note than an issue so I don't spam you with another ticket about this.

problem with png and gps metadata

png images (screenshots) didn't merged with their json files, also the jpg that merged successfully lost their gps metadata in the process

JavaScript Error in the main process

Hello, using the latest 1.1.1 and getting the following error.

Uncaught Exception: Error [ERR_MULTIPLE_CALLBACK]: Callback called multiple times at onwrite (_stream_writable.js:437:11) at ProxyWriter.emit (events.js:315:20) at FileWriter.emit (events.js:315:20) at end (/private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/fstream/lib/writer.js:324:14) at /private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/fstream/lib/writer.js:314:34 at endUtimes (/private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/fstream/lib/writer.js:238:46) at setProps (/private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/fstream/lib/writer.js:297:5) at /private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/fstream/lib/writer.js:287:7 at callback (/private/var/folders/rs/51g4s6_j0wg7n96zpz4ps6b80000gp/T/AppTranslocation/238AEED8-7D31-41A5-8D20-1F618AE42910/d/Google Photos Export Organizer.app/Contents/Resources/app.asar/node_modules/graceful-fs/polyfills.js:295:20) at FSReqCallback.oncomplete (fs.js:173:5)

Produces many 0 KB size files when "Re-Insert Available Exif Metadata" enabled

Big thanks for the awesome guide and this tool ❤️

My specs:
Windows 10
Yes, my takeout consist of only the Google Photos
GooglePhotosExportOrganizer v1.1.1
Options: ✅ Use Extracted Location ✅ Keep Original Name 🔲 Re-Insert Availalbe EXIF Metadata

Description
When "Re-Insert Available Exif Metadata" option is enabled a lot of files get corrupted (aka become 0 KB in size). I haven't been able to find a specific pattern for which kind of files this happens to but it seems to only affect .jpg files. The app also crashes during the organize process - I never get to see the "Step 4: Tidy Up" page. Is there a log somewhere?

If i run organize without "Re-Insert Available Exif Metadata" it works well.

Reference to undefined variable in `organize.js`

Received an email from the website form from 'arthur' with this screenshot:

JavaScript error message

Uncaught Exception:
TypeError: Cannot read property 'formatted' of undefined
  at C:\Users\Eduard\Downloads\GooglePhotosExportOrganizer_windows\Google Photos Export Organizer 1.1.0ads\resources\app.asar\build\organize.js: 124:53
  at FSReqCallback.oncomplete (fs.js: 160:23)

International Dates Cause App to Skip File

The Organize process makes several checks to validate the photoTakenDate in the file's .json metadata. Unfortunately, the app was only built with English in mind, but Google allows exporting in the user's native language, which means that JavaScript's new Date() parsing fails on anything that isn't English, causing the app to skip the file because it couldn't be validated. How charming!

To fix this, I'll need to find a date parsing library that can handle any language. This will go hand-in-hand with issue #13.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.