[Edit] Discontinued indefinitely. App creation was a little out of my league when I began trying to make it. Then Snapchat started encrypting files in more complicated ways than I had experience with, so I couldn't keep up and unfortunately had to drop all efforts. This project will no longer work and no further effort has been made to continue progress. I apologize for the lack of communication.
There are other resources out there that are still working, however. If you need help finding such things, you're welcome to PM me to ask what I'm referring to.
Discontinued until further notice. Currently working on an app that does all of this and more. For those who previously downloaded this and find it suits their needs for the most part, enjoy it, and consider checking out the app in the future. To others, I will let you know when I release the app. It should be much improved from the current project (and it doesn't require Tasker).
Due to a request to release my tasker project, which silently, neatly, and automatically copies and renames the snapchats you receive to a separate folder, I created this thread. Please try the latest version before asking for help with an issue. Most issues have probably been solved at this point.
There are still bound to be a few kinks in this, but I have spent lots of time getting it to work as much as possible (I am rather proud of the regular expressions that I created myself, even if they might be overkill).
Attached is the project if you just want to import it and let it go to work. Just extract from the zip and import in tasker by clicking a Project at the bottom of the Profiles tab (not the + sign, but an icon to the left of it)
To describe it simply: upon receiving a notification from snapchat and noticing a file change in the directory where the files are stored, it runs a series of commands that copies and saves them to the SDcard/Snapchat/Saves(/Vids) with filenames of "[DATE] - [TIMEMS] [NAME OF SENDER].jpg" (or .mp4). TIMEMS is the time in milliseconds from some time in January 1970. It keeps the task from overwriting your saves and it orders them nicely.
If I end up making any drastic changes, I'll probably come back and include them here. If you take it and make any changes that simplifies the process or makes it work better, feel free to share.
Good luck!
The new version (5-8_v5) has been released (small update from v4)! PLEASE READ BEFORE USING:
Requires Tasker's Accessibility service to be running (Android Settings> Accessibility> Tasker) to catch the notifications—only if you want the usernames to be automatically parsed and used; if you don't turn it on, it'll give you a Variable Query every time it finds a file loaded. Also if you don't turn it on, run the Folder Fixes task on your own, cause it's supposed to run the first time you get a notification.
When this first runs, it assumes that you have the folder/directories created. I don't know when snapchat creates them (during install or after receiving the first snap), so if you get errors related to not finding the file then try re-running the Folder Fixes associated task.
If you see something asking for text with the title Username, that's the Variable Query I mentioned. That's asking for the person's name who sent it, if you know it. If you don't know it at the time of asking, you can put anything in there and it'll copy with that attached (you can always go to the folder and rename it yourself)—otherwise, you can close it (or wait 15 seconds) and rerun the task on your own time.
Besides that, don't touch anything and you should be fine!
Changelog (5-8_v5):
Small update to 5-6 which stops the task and, therefore, the %Last[whatever] variables from being created if the Username variable is unset when it gets to the part where it copies (equating to no copies being made, regardless).
Because of that, now you shouldn't have to delete variables manually.
An unmentioned change in 5-6 was that I changed the flash message. It now flashes the names of each file it creates. This can be turned off—Action 37 in the Copy/Rename tasks.
(v2) Figured out the other reason why duplicates were happening with images. It has now been updated. (The only way this could backfire [same for videos] is if you get two different snaps of the exact same filesize in the same time period—very unlikely)
(v2) Made the Variable Query nicer looking.
(v3) Fixed some variable references that were funky
(v4) Fixed the profiles getting turned off and staying off by accident under certain scenarios
(v5) Changed it so no user input is required to turn off the profiles. If the 4.2+ one runs at all, it stops and turns off the other one.
(v5) Changed the %Last[etc] variables from creating excessive arrays with the same numbers.
Changelog (5-6):
Revamped the way it checks for previously copied snaps. It should be foolproof now, giving no duplicates while still not missing any.
Added an Array Clear for the %Username variable at the end of the copy/rename tasks.
Added a Variable Query if it's going to copy something but %Username is not set (see above for usage)
You can delete the Variable Set %Notification from the Update Username task if you want. It's just there for me so I can check it as a global variable. It isn't referenced anywhere else in the project.
Changelog (5-4_v2):
TONS of error fixes caused by insufficient permissions and directories are now included in the run-once profile.
Added profile (and associated tasks) which should fix the problem that users were having about the video folder not existing
(v2) Optimized the way it turns off profiles. This should automate the above-listed stuff. So even if you have all the profiles on, it should turn off the ones that don't work (unless both of them work). Still, in case the run-once wasn't turning off when done, now it will.
(v2) I consider this the first fully stable release. However, you're welcome to note if it doesn't work for you.
Changelog (5-3):
The received_video_snaps folder will no longer be allowed to be deleted by Snapchat
No more error messages when saving video snaps
If the %Username(1) variable is unset, it will flash a Variable Query, which you should type the person's name in.
The only issue with this is for videos. You will just need to go back to the other screen and load the video again.
If/Then was deleted in the Username catching task to catch multiple usernames better.
Profiles should now only trigger once per file change. I would check from time to time to make sure they are still in the "on" position. It should be fine, but I won't assume anything.
Project icon changed to Snapchat icon
Changelog (4-29):
has been significantly enhanced from the original. It now does a much better job:
Preventing duplicates saves
Not running indefinitely
Running efficiently and quicker
Having less confusing global variables
Picking up the username (currently testing to see if this can be done even better, but I basically need to wait for a certain type of notification. It should be better regardless)
Edit, I think it's safe to delete the If and End If in the Update Username task, which might work for trying to pick up multiple usernames at the same time. This hasn't been extensively tested, but I'm pretty sure it's the correct decision
Automatically catching videos when they're loaded
I also fixed a few rather large errors that might have been in the previous release
Donations are accepted!
NEWEST Version is on the bottom (I'm not really sure why people are downloading the original version at this point... it's just there for reference. I may just remove that one if it tricks people that much...)
I should probably note that this does require root, because you have to change the permissions of the files for tasker to be able to read them.
Hello, is it possible to make one with this conditions with just a simple task...
Whenever I receive new snapchat notification, I then open tasker and just run that particular task.
What I want the task to do is just copy everything and remove the ".nomedia" extension from snapchat folder into a new folder in the memory card.
The reason I want this is that Snapchat isn't so popular in my country. Therefore, I only receive Snapchats once in a while and I only want to save the images sometimes. Not all the times. Moreover, i dont wanna keep tasker running in the background.
Thanks a lot!!
rfkw said:
Hello, is it possible to make one with this conditions with just a simple task...
Whenever I receive new snapchat notification, I then open tasker and just run that particular task.
What I want the task to do is just copy everything and remove the ".nomedia" extension from snapchat folder into a new folder in the memory card.
The reason I want this is that Snapchat isn't so popular in my country. Therefore, I only receive Snapchats once in a while and I only want to save the images sometimes. Not all the times. Moreover, i dont wanna keep tasker running in the background.
Thanks a lot!!
Click to expand...
Click to collapse
That should be rather simple. If you wanted to use my project, you would do that by deleting or turning off all the profiles in the project, and then you'd only need the tasks named Run & Rename Snapchat Image and Run & Rename Snapchat Video and get rid of some of the extra features that you don't need. For example, you could get rid of a bunch of the steps in the tasks.
[deleted]
This would technically work for both images and videos, but to get it to actually find the videos, you'd have to find a way to run the task while snapchat is loaded and the video says "Tap to View". I'd suggest setting up a gesture.
By the way, in the project I have, tasker only runs when each profile is active. That's why they're there, to prevent the battery drain that would otherwise occur. The profile states are rather infrequent (when you receive a snapchat notification, and when a file is changed in the directories listed), so I haven't really noticed battery drain from that.
You're also aware that you have to do this BEFORE you view the snapchat, right? Otherwise, you could just take a screenshot...
An alternative to the above method would be to use the Copy Dir command on those directories, or the FolderSync app, but you'd still need to change or add the correct file extension (jpg and mp4). Fiddle around with it; you might be able to figure out a way to add the extension.
Disregard below, I figured it out, it wasn't so clear about long pressing the icons at the bottom of the screen to get to the projects dialog. Done now! Thank you shenkenstein
I'm unable to import the prj file. I tried multiple things until I just changed it from snap.prj.xml to snap.prf.xml and the Tasker was able to see it in the import dialog. But once I select it I get:
Error: the import contains more than one profiles
I'm thinking there's something missing in my Tasker. I keep hearing references to 'projects' but no such tab exists in my UI. I've gone to preferences and unchecked 'beginner mode' with very little changes.
What am I missing?
shenkenstein said:
An alternative to the above method would be to use the Copy Dir command on those directories, or the FolderSync app, but you'd still need to change or add the correct file extension (jpg and mp4). Fiddle around with it; you might be able to figure out a way to add the extension.
Click to expand...
Click to collapse
I actually tried setting up a simple copy dir commad. Just copy dir from the receivedsnapchat folder to a random folder on my sdcard whenever I run Snapchat.
However, it doesnt seem to work. I guess it's something to do with the chmod thing which I'm not familiar with. Am I right?
Thanks for your help tho! I'll try out the steps you listed. Hopefully I can get it to work.
---------- Post added at 01:13 PM ---------- Previous post was at 12:18 PM ----------
shenkenstein said:
On second thought, what you want would just be easier to create a task with:
A1: List Files [ Dir:/data/data/com.snapchat.android/cache/received_image_snaps Match: Include Hidden Files: On Variable:%nomedia Continue Task After Error: On ]
A2: List Files [ Dir:/data/media/Android/data/com.snapchat.android/cache/received_video_snaps Match: Include Hidden Files: On Variable:%nomediavid Continue Task After Error: On ]
A3: Run Shell [ Command:chmod 777 %nomedia() Timeout (Seconds):0 Use Root: On Store Output In: Store Errors In: Store Result In: Continue Task After Error: On ]
A4: For [ Variable:%filestocopy Items:%nomedia() ] --- don't forget the () after nomedia
A5: Copy File [ From:%filestocopy To:Snapchat/Saves/%TIMEMS.jpg Use Root: Off Continue Task After Error: On] -- here's where I have an issue, because I'm pretty sure you need to tell it the original filename of the file, minus the nomedia part (the variables stored in %nomedia will be the entire filename, including directories). That's why I find it easier to create my own filename, so I'd use something like %TIMEMS as I have listed. You could also change the directory here. You COULD keep the old filename using tasker's variable search replace function with a regex to select everything but the nomedia part, but I think that's not worth the effort.
A6: End For
Click to expand...
Click to collapse
Alright managed to get it working. Currently for A5, I've set it to To:New Folder. This new folder is a folder on my sdcard.
The question I have is, if I'm using %TIMEMS.jpg, how would it rename the files? Would it be sequenced or will all the files have the same name?
Would it be 1TIMEMS.jpg, and next pic would be 2TIMEMS.jpg, 3TIMEMS.jpg and so on? Or would it be the original filename with TIMEMS at the back, ie. "adlfkadlfhadlfTIMEMS.jpg"?
Thanks!!
rfkw said:
Alright managed to get it working. Currently for A5, I've set it to To:New Folder. This new folder is a folder on my sdcard.
The question I have is, if I'm using %TIMEMS.jpg, how would it rename the files? Would it be sequenced or will all the files have the same name?
Would it be 1TIMEMS.jpg, and next pic would be 2TIMEMS.jpg, 3TIMEMS.jpg and so on? Or would it be the original filename with TIMEMS at the back, ie. "adlfkadlfhadlfTIMEMS.jpg"?
Thanks!!
Click to expand...
Click to collapse
You can see for yourself by doing a flash %TIMEMS. It always comes up with different numbers, such as 1367028766502 or 1367028766586. I don't think tasker is fast enough to do multiple commands in the same millisecond. Does that make sense?
And chmod is the shell command that gives the files permission to be read, write, and executed. You can read about it online if you really want, but if it's not working you either don't have root or didn't check use root. In fact, the Copy Dir alternative would probably require use root to be checked as well, but again, because we're wanting to change filenames, I don't think that's the command we want.
Bumping because of new version.
You can delete the old project and add this one if you have the older version. Deleting a project is done much the same way adding one is.
Vid done!
I installed and when I load a video, I get a message "Vid Done" When I exit Snapchat, I get a Tasker Error, List Files: file not found: /data/media/Android/com.snapchat.android/cache/Received video snaps. What am I doing wrong? I'm a noob, sorry if it's a dumb question.
Hi! I've imported it to Tasker, and everything seems fine there. However, it simply won't do anything and I've tried everything with my extremely limited knowledge.
I receive a Snap, but nothing shows up in /storage/sdcard0/Snapchat/Saves/(or Vids depending). Running Xperia P, with JB 4.1.2
I've checked that the images or videos do show up in the folders specified by the project, it just seems like it doesn't recognize I have gotten a snap?
Dahlmo said:
Hi! I've imported it to Tasker, and everything seems fine there. However, it simply won't do anything and I've tried everything with my extremely limited knowledge.
I receive a Snap, but nothing shows up in /storage/sdcard0/Snapchat/Saves/(or Vids depending). Running Xperia P, with JB 4.1.2
I've checked that the images or videos do show up in the folders specified by the project, it just seems like it doesn't recognize I have gotten a snap?
Click to expand...
Click to collapse
Do you have tasker enabled in accessibility settings? If not, then the profile won't get the username from the notification. If you don't want to enable it, you can add a Variable Query for Username(1) in the copying task. Then, that'll always ask you for that variable when it finds the file added. Just put whatever you want there (though it's designed for the person's name)
As my project is set up, the file won't copy if the username isn't set, and it won't set if tasker can't access the notifications.
I've just added:
If %Username(1) ! Set
Variable Query: Variable %Username(1)
End If
to my copy tasks right before the For, For, Run Shell, etc... commands. That should take care of that situation, if it's the problem, and if I release a new version it'll have it :good:
wdgewood said:
I installed and when I load a video, I get a message "Vid Done" When I exit Snapchat, I get a Tasker Error, List Files: file not found: /data/media/Android/com.snapchat.android/cache/Received video snaps. What am I doing wrong? I'm a noob, sorry if it's a dumb question.
Click to expand...
Click to collapse
No, it's not a dumb question. It's because the File Modified profile picks up when Snapchat deletes the file as well as when the file is copied by tasker (but the task that gets that error message is what allows it to not run every time this happens). It's not a significant error, UNLESS you aren't seeing it copy the files. You can turn those flash error messages off in Tasker Preferences>Action>Flash Problems.
Edit: I just fixed the error message from displaying even with the flash problems option checked. Go to the SnapVid File Added profile, click the File Modified part of it, and add /received_video_snaps/ after /cache/ so that it looks like "/data/media/Android/com.snapchat.android/cache/received_media_snaps/" without the quotes. I'm surprised I didn't notice that myself. Haha, thanks for pointing it out. That'll should also prevent the task from running while you're sending videos (because I saw a folder named sending_video_snaps there too before it deleted it again).
Edit 2: Nevermind, the error still came up, but it's only when snapchat deletes the folder. Also, my profile doesn't activate with that folder added, which is probably why I left it at /cache/. What's happening is the Video File Ready task is trying to List Files and it's not finding the folder in which it's supposed to search. I don't know any way around this because it keeps deleting the folder, even if you add it manually. --more on this below--
shenkenstein said:
Do you have tasker enabled in accessibility settings? If not, then the profile won't get the username from the notification. If you don't want to enable it, you can add a Variable Query for Username1 in the copying task. Then, that'll always ask you for that variable when it finds the file added. Just put whatever you want there (though it's designed for the person's name)
As my project is set up, the file won't copy if the username isn't set, and it won't set if tasker can't access the notifications.
Click to expand...
Click to collapse
After enabling it in the accessibility settings it still isn't working fully.
In Tasker, I imported the SNAP.prj.xml file, and the profiles "Snapchat Notification, Snap File Added and SnapVid File Added" are all set to on. Tasker says there are "no active profiles" but I assume that is due to the snap.prj.xml file being under the "two people" tab, and not the "house" tab.
I see that under vars on the home tab I have "%Username1 someoneIrecievedfrom" so something must be work. Just not getting any files I assume. Again, this (adding variables and such) is out of my league, so I apologize for seeming a bit technically impaired.
Dahlmo said:
After enabling it in the accessibility settings it still isn't working.
In Tasker, I imported the SNAP.prj.xml file, and the profiles "Snapchat Notification, Snap File Added and SnapVid File Added" are all set to on. Tasker says there are "no active profiles" but I assume that is due to the snap.prj.xml file being under the "two people" tab, and not the "house" tab.
I see that under vars on the home tab I have "%Username1 someoneIrecievedfrom" so something must be work. Just not getting any files I assume.
Click to expand...
Click to collapse
If you run the Run & Rename Snapchat Image task by itself, does it work then?
Hmm. Don't worry about the username variable, then. The "no active profiles" is fine, because these profiles are set to be active only for the event itself (which is like a split second long). The only other thing I can think of, without seeing your run log, is if you don't have root or haven't given Tasker root access. So, also try turning on the Run Log and noting where you get an error.
Breakthrough!
I just had a major breakthrough with the videos folder deletion problem (which ends up creating errors and stuff). [deleted]
That literally disables Snapchat's ability to delete folders in the cache folder, but it allows it to create new folders and files within the new folders. Theoretically, you could also do this same function to the received_video_snaps folder, and it would never be able to delete the files within the folder. Unfortunately, if you did that then every time you hit "load" in snapchat, it would load a new file into the folder, so you'd probably get multiples. But that could be done to the images folder without any issues, I think.
[deleted]
Dahlmo said:
After enabling it in the accessibility settings it still isn't working fully.
In Tasker, I imported the SNAP.prj.xml file, and the profiles "Snapchat Notification, Snap File Added and SnapVid File Added" are all set to on. Tasker says there are "no active profiles" but I assume that is due to the snap.prj.xml file being under the "two people" tab, and not the "house" tab.
I see that under vars on the home tab I have "%Username1 someoneIrecievedfrom" so something must be work. Just not getting any files I assume. Again, this (adding variables and such) is out of my league, so I apologize for seeming a bit technically impaired.
Click to expand...
Click to collapse
I'm having this issue too. I have a rooted Galaxy Nexus and have enabled Tasker in Accessibility settings. I've attempted to run the ''Run and Rename Snapchat Image' when I had a pending one and it did not work. I could, however, see the file in the directory (/data/data/com.snapchat.android/cache/received_image_snaps) when I checked it out via Root Explorer. I also could see my contact's name in the %Username value.
My Run Log from when I manually run that task with an active Snapchat is attached with the 5-3 profile.
a10waveracer said:
I'm having this issue too. I have a rooted Galaxy Nexus and have enabled Tasker in Accessibility settings. I've attempted to run the ''Run and Rename Snapchat Image' when I had a pending one and it did not work. I could, however, see the file in the directory (/data/data/com.snapchat.android/cache/received_image_snaps) when I checked it out via Root Explorer. I also could see my contact's name in the %Username value.
My Run Log from when I manually run that task with an active Snapchat is attached with the 5-3 profile.
Click to expand...
Click to collapse
Thanks for the Run Log.
Well, your answer is that the List Files command (label List nomedia) is failing to find the files in the folder. I can think of only two possible reasons for this (and I think it's #1):
1. Check the permissions of the folder /received_image_snaps/ and tell me if it's missing read permissions for group or other (I think Tasker falls under Other, but I forget). If it is, try manually adding those permissions (check the boxes); you might want to add permissions to execute as well, just in case. I can set up another command in the run-once profile to solve this for everyone if it fixes it for you, so let me know.
2. In the List nomedia command, I have it set up to match any files in there which have a character or more followed by .nomedia (this is under Match, listed as "+.nomedia"). If the files you see in that folder don't match this regex, it won't list them. You can safely delete this entirely without any negative side-effects. Nothing gets put in that folder that doesn't match that regex, anyway, for me.
shenkenstein said:
Thanks for the Run Log.
Well, your answer is that the List Files command (label List nomedia) is failing to find the files in the folder. I can think of only two possible reasons for this (and I think it's #1):
1. Check the permissions of the folder /received_image_snaps/ and tell me if it's missing read permissions for group or other (I think Tasker falls under Other, but I forget). If it is, try manually adding those permissions (check the boxes); you might want to add permissions to execute as well, just in case. I can set up another command in the run-once profile to solve this for everyone if it fixes it for you, so let me know.
2. In the List nomedia command, I have it set up to match any files in there which have a character or more followed by .nomedia (this is under Match, listed as "+.nomedia"). If the files you see in that folder don't match this regex, it won't list them. You can safely delete this entirely without any negative side-effects. Nothing gets put in that folder that doesn't match that regex, anyway, for me.
Click to expand...
Click to collapse
Yeah, the permissions were not set to allow it reading. Now it gets to the end before it fails. I've uploaded the run log as well as a screenshot of the error it pops out. It's worth noting that the file it "can't find" both exists and has 777 permissions set.
a10waveracer said:
Yeah, the permissions were not set to allow it reading. Now it gets to the end before it fails. I've uploaded the run log as well as a screenshot of the error it pops out. It's worth noting that the file it "can't find" both exists and has 777 permissions set.
Click to expand...
Click to collapse
Strange. I normally only see the copy file error if the file itself doesn't have permissions (which would be the result of the previous command not working) or if the %Username1 variable doesn't exist, but you noted clearly that it did work, and the variable should still be there from when it found it earlier.
And I think I just duplicated this error. It's so mundane that this is the case, but it's quite a big issue, so I'll have to update the version in a bit. Try adding a Saves folder in your Snapchat folder in your sd card. I was about to doubt this would be the case until I tried a different folder in my task.
Though, I'm confused why your screen still showed that error. Something's still awry I think...