8

I'd like to ask a question about the facebook app (but it is not only one that does this). Currently, when I save any photo from facebook, it saves into /DCIM/Facebook.

Now I would not normally care where the photos are stored as long as Gallery app sorts them right, but the fact it goes into DCIM folder makes it behave wrongly with the Google Photos app.

Google Photos treat all those Facebook saved posts as "Camera photos" and tries to synchronize them to server, which I obviously do not want (I store photo albums on GPh, I do not need meme pics among them) and I cannot refine the synchronize options any more (only "Camera" is chosen to sync).

Is there a way to exclude those downloaded pictures from sync? Or make Facebook save its downloads to, say, /Pictures/Facebook ?

Same as above also happens in DCIM/Screenshots while clipping parts of screen.

Phone is Samsung Galaxy Note 4, Android 6.0.1

Thanks in advance

5
  • I use Folder Sync on the play store for syncing certain folders to the external SD,... You could sync them to a different backup every half hour, Deleting the original after sync !... here Jul 17 '16 at 10:03
  • I'll try that, at least the copying part would go away. but if someone have something more automatic (I have been manually clearing the folders until now) it would be appreciated
    – erewien
    Jul 17 '16 at 13:04
  • FolderSync has an automatic interval, And a instant sync... It watches the folder for changes and sync's then Jul 17 '16 at 13:51
  • The way I found around this was to install an app like 'savetofilesystem', 'save to SD card' or, 'save to file', then instead of using Facebook's 'save to phone' feature, I would use the 'share external' feature to share the image to the correct folder via one of those apps.
    – dt192
    Sep 5 '20 at 11:54
  • Any progress for new solutions? it must be another way...
    – Panagiss
    Jul 10 at 10:30
9

I had EXACTLY the same problem. I couldn't find a solution else where. The only solution was to use a .nomedia file in the /sdcard/DCIM/Facebook directory and moving the *.jpgs to another folder. I had made a Tasker task referring to a reddit post in /r/tasker. Here is the description and the XML for importing it. You have to create the %destpart and add a .nomedia in %sourcepath for it to work. You can run this task in a profile as an exit task for Facebook and as an entry task for other messenger apps like Telegram/Whatsapp, etc. so you get your memes right!

The Meme Mover (3)
A1: Variable Set [ Name:%sourcepath To:/sdcard/DCIM/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A2: Variable Set [ Name:%destpath To:/sdcard/Pictures/Facebook/ Recurse Variables:Off Do Maths:Off Append:Off ] 
A3: Variable Set [ Name:%suffix To:(1) Recurse Variables:Off Do Maths:Off Append:Off ] 
A4: Variable Set [ Name:%counter To:0 Recurse Variables:Off Do Maths:On Append:Off ] 
A5: List Files [ Dir:%sourcepath Match:*.jpg/*.png/*.jpeg/*.gif/*.3gp Include Hidden Files:Off Use Root:Off Sort Select:Alphabetic Variable:%filestomove ] 
A6: For [ Variable:%thispathfile Items:%filestomove() ] 
A7: Variable Split [ Name:%thispathfile Splitter:/ Delete Base:Off ] 
A8: Variable Set [ Name:%len To:%thispathfile(#) Recurse Variables:Off Do Maths:Off Append:Off ] 
A9: Variable Set [ Name:%filename To:%thispathfile(%len) Recurse Variables:Off Do Maths:Off Append:Off ] 
A10: Variable Clear [ Name:%exists Pattern Matching:Off ] 
A11: Test File [ Type:Type Data:%destpath%filename Store Result In:%exists Use Root:Off Continue Task After Error:On ] 
A12: If [ %exists !Set ]
A13: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A14: Scan Card [ File:%destpath%filename ] 
A15: Else 
A16: Variable Split [ Name:%filename Splitter:. Delete Base:Off ] 
A17: Variable Set [ Name:%filename1 To:%filename1%suffix Recurse Variables:Off Do Maths:Off Append:Off ] 
A18: Variable Join [ Name:%filename Joiner:. Delete Parts:Off ] 
A19: Move [ From:%thispathfile To:%destpath%filename Use Root:Off ] 
A20: Scan Card [ File:%destpath%filename ] 
A21: End If 
A22: Variable Add [ Name:%counter Value:1 Wrap Around:0 ] 
A23: End For 
A24: If [ %counter eq 0 ]
A25: [X] Flash [ Text:No memes? Sad. Long:On ] 
A26: Else If [ %counter eq 1 ]
A27: Flash [ Text:%counter meme moved! Long:On ] 
A28: Else 
A29: Flash [ Text:%counter memes moved! Long:On ] 

Remember to have .nomedia in %sourcepath

Here's the XML for direct import:

<TaskerData sr="" dvi="1" tv="4.9u4">
<Task sr="task3">
    <cdate>1489093858387</cdate>
    <edate>1489219027762</edate>
    <id>3</id>
    <nme>The Meme Mover</nme>
    <pri>100</pri>
    <Kid sr="Kid">
        <launchID>3</launchID>
        <pkg>me.regalstreak.movefb</pkg>
        <vnme>1.0</vnme>
    </Kid>
    <Action sr="act0" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">/sdcard/DCIM/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act1" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%destpath</Str>
        <Str sr="arg1" ve="3">/sdcard/Pictures/Facebook/</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act10" ve="7">
        <code>342</code>
        <se>false</se>
        <Int sr="arg0" val="4"/>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Str sr="arg2" ve="3">%exists</Str>
        <Int sr="arg3" val="0"/>
    </Action>
    <Action sr="act11" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%exists</lhs>
                <op>13</op>
                <rhs></rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act12" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act13" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act14" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act15" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act16" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename1</Str>
        <Str sr="arg1" ve="3">%filename1%suffix</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act17" ve="7">
        <code>592</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">.</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act18" ve="7">
        <code>400</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%destpath%filename</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act19" ve="7">
        <code>459</code>
        <Str sr="arg0" ve="3">%destpath%filename</Str>
    </Action>
    <Action sr="act2" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%suffix</Str>
        <Str sr="arg1" ve="3">(1)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act20" ve="7">
        <code>38</code>
    </Action>
    <Action sr="act21" ve="7">
        <code>888</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Int sr="arg1" val="1"/>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act22" ve="7">
        <code>40</code>
    </Action>
    <Action sr="act23" ve="7">
        <code>37</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>0</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act24" ve="7">
        <code>548</code>
        <on>false</on>
        <Str sr="arg0" ve="3">No memes? Sad.</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act25" ve="7">
        <code>43</code>
        <ConditionList sr="if">
            <Condition sr="c0" ve="3">
                <lhs>%counter</lhs>
                <op>0</op>
                <rhs>1</rhs>
            </Condition>
        </ConditionList>
    </Action>
    <Action sr="act26" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter meme moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act27" ve="7">
        <code>43</code>
    </Action>
    <Action sr="act28" ve="7">
        <code>548</code>
        <Str sr="arg0" ve="3">%counter memes moved!</Str>
        <Int sr="arg1" val="1"/>
    </Action>
    <Action sr="act3" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%counter</Str>
        <Str sr="arg1" ve="3">0</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="1"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act4" ve="7">
        <code>412</code>
        <Str sr="arg0" ve="3">%sourcepath</Str>
        <Str sr="arg1" ve="3">*.jpg/*.png/*.jpeg/*.gif/*.3gp</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
        <Str sr="arg5" ve="3">%filestomove</Str>
    </Action>
    <Action sr="act5" ve="7">
        <code>39</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">%filestomove()</Str>
    </Action>
    <Action sr="act6" ve="7">
        <code>590</code>
        <Str sr="arg0" ve="3">%thispathfile</Str>
        <Str sr="arg1" ve="3">/</Str>
        <Int sr="arg2" val="0"/>
    </Action>
    <Action sr="act7" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%len</Str>
        <Str sr="arg1" ve="3">%thispathfile(#)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act8" ve="7">
        <code>547</code>
        <Str sr="arg0" ve="3">%filename</Str>
        <Str sr="arg1" ve="3">%thispathfile(%len)</Str>
        <Int sr="arg2" val="0"/>
        <Int sr="arg3" val="0"/>
        <Int sr="arg4" val="0"/>
    </Action>
    <Action sr="act9" ve="7">
        <code>549</code>
        <Str sr="arg0" ve="3">%exists</Str>
        <Int sr="arg1" val="0"/>
    </Action>
    <Img sr="icn" ve="2">
        <cls>com.facebook.katana.LoginActivity</cls>
        <pkg>com.facebook.katana</pkg>
    </Img>
</Task></TaskerData>

Copy the code above and save the file as The Meme Mover.tsk.xml in /sdcard/Tasker/tasks. Then go to Tasker, long press on Tasks, and import this.

Pro Tip: Enable A25 just for testing if you want to.

Edit: Code corrected and updated. (1 memes moved was triggering my OCD.)

Edit 2: Had some problems, corrected again.

1
  • Thank you so much. I had to purchase Tasker, but it was a small price to pay for salvation Nov 12 '19 at 21:14
3

Anyone else looking this in the future and don't know how to use Tasker or find it difficult to understand.

  1. Download this app.
  2. Go to organizer section.
  3. Make a service job to move files as soon they are found in the Facebook folder to some other folder.

Hope you don't have Meme UI or Samsung which kills everything in the background. If that's the case, check this.

See Image for detail

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.