Revert files via the GUI/CLI - restored to a different folder
Revert files via the GUI/CLI - restored to a different folder
Hey,
First of all, thank you very much for the sensational programme, your commitment and support.
I have the following request:
You already offer the backup function, which refers to the history. Would it be possible to add an option to the backup menu in the GUI to set the source directory or the new destination directory before the actual backup?
In other words: AMC/Docker Container has detected something incorrect and already renamed it, and I want to manually undo this via the GUI, but it should be restored to a different folder with the original file name.
Why am I making this request?
I let AMC automatically detect and move everything via a container. Sometimes the source files are simply rubbish and something is detected that is not correct. But when I undo it, my automation immediately detects it again and reassigns it incorrectly. This is because it is restored to the watch folder. I deliberately do not have any locks in the watch folder; it should also process files that have already been processed again and again and overwrite my target library (because my new files are always of better quality).
I hope I have explained the context well and that the request is feasible and will also please others and you! If you have a solution to my challenge, I would be happy to accept it.
Many thanks,
Seger
First of all, thank you very much for the sensational programme, your commitment and support.
I have the following request:
You already offer the backup function, which refers to the history. Would it be possible to add an option to the backup menu in the GUI to set the source directory or the new destination directory before the actual backup?
In other words: AMC/Docker Container has detected something incorrect and already renamed it, and I want to manually undo this via the GUI, but it should be restored to a different folder with the original file name.
Why am I making this request?
I let AMC automatically detect and move everything via a container. Sometimes the source files are simply rubbish and something is detected that is not correct. But when I undo it, my automation immediately detects it again and reassigns it incorrectly. This is because it is restored to the watch folder. I deliberately do not have any locks in the watch folder; it should also process files that have already been processed again and again and overwrite my target library (because my new files are always of better quality).
I hope I have explained the context well and that the request is feasible and will also please others and you! If you have a solution to my challenge, I would be happy to accept it.
Many thanks,
Seger
Last edited by seger85 on 13 Jan 2026, 06:56, edited 1 time in total.
Re: Revert files via the GUI/CLI - restored to a different folder
seger85 wrote: ↑13 Jan 2026, 00:23 I let AMC automatically detect and move everything via a container. Sometimes the source files are simply rubbish and something is detected that is not correct. But when I undo it, my automation immediately detects it again and reassigns it incorrectly. This is because it is restored to the watch folder.
e.g.
Console Output: Select all
$ filebot -script fn:amc input --output output --def excludeList=amc.excludes
...
Parameter: excludeList = amc.excludes
Argument[0]: input
Use excludes: output/amc.excludes (0)
...
[MOVE] from [input/Alias.1x01.mkv] to [output/TV Shows/Alias {tmdb-2046}/Season 01/Alias - S01E01 - Truth Be Told.mkv]
Processed 1 file
Done ヾ(@⌒ー⌒@)ノ...
Console Output: Select all
$ filebot -revert
...
Revert [output/TV Shows/Alias {tmdb-2046}/Season 01/Alias - S01E01 - Truth Be Told.mkv] to [input/Alias.1x01.mkv]
Reverted 1 file
Console Output: Select all
$ filebot -script fn:amc input --output output --def excludeList=amc.excludes
...
Parameter: excludeList = amc.excludes
Argument[0]: input
Use excludes: output/amc.excludes (1)
...
No files selected for processing
Done ¯\_(ツ)_/¯
EDIT
Console Output: Select all
$ filebot -script fn:history "/path/to/output" --filter "fn == /Alias - S01E01 - Truth Be Told/" -exec mv -v "{f}" "/path/to/{historic.f.name}"
/path/to/output/TV Shows/Alias {tmdb-2046}/Season 01/Alias - S01E01 - Truth Be Told.mkv -> /path/to/Alias.1x01.mkvRe: Revert files via the GUI/CLI - restored to a different folder
seger85 wrote: ↑13 Jan 2026, 00:23
Why am I making this request?
I let AMC automatically detect and move everything via a container. Sometimes the source files are simply rubbish and something is detected that is not correct. But when I undo it, my automation immediately detects it again and reassigns it incorrectly. This is because it is restored to the watch folder. I deliberately do not have any locks in the watch folder; it should also process files that have already been processed again and again and overwrite my target library (because my new files are always of better quality).
Code: Select all
AMC_ENABLED: "1"
AMC_INTERVAL: "20"
AMC_INPUT_STABLE_TIME: "30"
AMC_ACTION: "move"
AMC_MATCH_MODE: "opportunistic" # global opportunistic
AMC_LANG: "German"
AMC_CONFLICT: "override"
# Ein Mount für Quelle & Ziel -> rename(2) / Instant-Move
AMC_INPUT_DIR: "/media/Upload_Download/1 Download/1 Encodieren"
# Ziel-Formate (Routing: Standard + Kids + Dokus)
AMC_MOVIE_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderfilme'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Filme') }/{collection.replaceAll(/[:|]/, " - ")}/{n.replaceAll(/[:|]/, " - ")}
({y}) {[vf]}/{n.replaceAll(/[:|]/, " - ")} ({y}) {[vf]}
AMC_SERIES_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderserien'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Serien') }/{n} ({y})/Staffel {s}/{n} - {s00e00} - {t} {[vf]}
AMC_CUSTOM_OPTIONS: >-
-non-strict
-r
--order Digital
--file-filter "['1 Filme_Encodiert (Fertig)','1 Serien_Encodiert (Fertig)','11 Kinderfilme_Encodiert (Fertig)','11 Kinderserien_Encodiert (Fertig)','111 Dokumentationen_Filme_Encodiert (Fertig)','111 Dokumentationen_Serien_Encodiert (Fertig)'].contains(f.parentFile.name)"
--filter "true"
--def subtitles=n minFileSize=0
unsorted=y
unsortedFormat="/media/Upload_Download/1 Download/{file.name}"
excludeList=/dev/null
music=n
ignore="(?i)(?:^|/)1_nicht_löschen\.lock$|(?:^|/)(Backup alt|@eaDir)(?:/|$)"
exec="/config/scripts/post-hook.sh {quote f, historic.f}"
movieDB=TheMovieDB
seriesDB=TheTVDBI deliberately don't use the lock, as I wrote, I overwrite my files more often because I deliver better quality with the same input and I wanted to finalise manually sorted media as best I could.
Have I understood you correctly that I can achieve the redirection with a script? Does this script also work when I run "Reserve" via the GUI? Because the reversal and subsequent manual processing is usually carried out by users via the UI.
Thanks again for your help! Maybe you'll see something else in my AMC that you would do differently or better.
Thanks
Seger
Re: Revert files via the GUI/CLI - restored to a different folder
Re: Revert files via the GUI/CLI - restored to a different folder
You're right with your question. Perhaps it's the very same file that I accidentally renamed twice and moved, because it's quicker to simply overwrite and move it than to manually sort through the actual misfilings and duplicate files afterwards.
Sometimes I also download a director's cut and the target file name always follows the same pattern for me, meaning that the file I have is the final version in my opinion. In other words, the name conversion in the target remains the same, the bitrate may be slightly lower, but it is a better version of the film for me.
Yes, you are absolutely right, and thank you for asking. I use jlesage/filebot:latest. Feel free to take a look at my configuration:
The following was important to me when making my selection:
I want to be able to access it externally via GUI
It must have encryption
The GUI must be linked to the reserve function, i.e. I can see what the CLI has done and can undo it.
And probably many other reasons... haha.
Can I perhaps turn off the loop and have it sort into two different folders according to defined errors? In other words, if it was the same file, move it to the recycle bin. If it was a non-match, move it to the defined location as in my script? This would prevent me from constantly moving files around and I would no longer overwrite duplicate files, but move them straight to the bin.
If you have any recommendations, solutions or improvements, I'm very open to them!
I am very grateful to you and think it's incredible what a service you offer!!!
Best regards
Seger
Sometimes I also download a director's cut and the target file name always follows the same pattern for me, meaning that the file I have is the final version in my opinion. In other words, the name conversion in the target remains the same, the bitrate may be slightly lower, but it is a better version of the film for me.
Yes, you are absolutely right, and thank you for asking. I use jlesage/filebot:latest. Feel free to take a look at my configuration:
Code: Select all
version: "3.9"
services:
filebot:
image: jlesage/filebot:latest
container_name: filebot
restart: unless-stopped
ports:
- "5800:5800"
# - "5900:5900" # optional VNC-Client
environment:
TZ: Europe/Berlin
USER_ID: "1030"
GROUP_ID: "100"
UMASK: "0022"
# UI / VNC
DISPLAY_WIDTH: "1920"
DISPLAY_HEIGHT: "1080"
VNC_PASSWORD: "password"
# HTTPS & Web-Auth
SECURE_CONNECTION: "1"
WEB_AUTHENTICATION: "1"
WEB_AUTHENTICATION_USERNAME: "User"
WEB_AUTHENTICATION_PASSWORD: "password!!!"
# EMBY & HA für post-hook.sh
EMBY_HOST: "http://192.168.178.121:8096"
EMBY_API_KEY: "APIKEY"
HA_HOST: "http://192.168.178.122:8123"
HA_TOKEN: "token"
# Für Emby-Webhook
INSTALL_PACKAGES: "curl"
# NFS/XAttr
FILEBOT_OPTS: "-DuseExtendedFileAttributes=false"
# --- AMC (Polling) ---
AMC_ENABLED: "1"
AMC_INTERVAL: "20"
AMC_INPUT_STABLE_TIME: "30"
AMC_ACTION: "move"
AMC_MATCH_MODE: "opportunistic" # global opportunistic
AMC_LANG: "German"
AMC_CONFLICT: "override"
# Ein Mount für Quelle & Ziel -> rename(2) / Instant-Move
AMC_INPUT_DIR: "/media/Upload_Download/1 Download/1 Encodieren"
# Ziel-Formate (Routing: Standard + Kids + Dokus)
AMC_MOVIE_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderfilme'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Filme') }/{collection.replaceAll(/[:|]/, " - ")}/{n.replaceAll(/[:|]/, " - ")}
({y}) {[vf]}/{n.replaceAll(/[:|]/, " - ")} ({y}) {[vf]}
AMC_SERIES_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderserien'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Serien') }/{n} ({y})/Staffel {s}/{n} - {s00e00} - {t} {[vf]}
AMC_CUSTOM_OPTIONS: >-
-non-strict
-r
--order Digital
--file-filter "['1 Filme_Encodiert (Fertig)','1 Serien_Encodiert (Fertig)','11 Kinderfilme_Encodiert (Fertig)','11 Kinderserien_Encodiert (Fertig)','111 Dokumentationen_Filme_Encodiert (Fertig)','111 Dokumentationen_Serien_Encodiert (Fertig)'].contains(f.parentFile.name)"
--filter "true"
--def subtitles=n minFileSize=0
unsorted=y
unsortedFormat="/media/Upload_Download/1 Download/{file.name}"
excludeList=/dev/null
music=n
ignore="(?i)(?:^|/)1_nicht_löschen\.lock$|(?:^|/)(Backup alt|@eaDir)(?:/|$)"
exec="/config/scripts/post-hook.sh {quote f, historic.f}"
movieDB=TheMovieDB
seriesDB=TheTVDB
volumes:
- /srv/appdata/filebot:/config:rw
- /mnt/media:/media:rw
# --- GUI: eine Mount-Wurzel für Quelle+Ziel => echtes Move möglich ---
- /mnt/media:/storage:rw
# Ressourcen/Logging (dein Style)
cpu_shares: 256
cpus: "4.0"
mem_reservation: 2g
mem_limit: 3g
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks: [edge]
networks:
edge:
external: true
I want to be able to access it externally via GUI
It must have encryption
The GUI must be linked to the reserve function, i.e. I can see what the CLI has done and can undo it.
And probably many other reasons... haha.
I have just corrected myself a little; sometimes I do actually just download the same one, which I cannot rule out either.If you cannot use the file name to exclude previously processed files, then maybe some other logic might work better for your use case? Perhaps the last modified date?
Can I perhaps turn off the loop and have it sort into two different folders according to defined errors? In other words, if it was the same file, move it to the recycle bin. If it was a non-match, move it to the defined location as in my script? This would prevent me from constantly moving files around and I would no longer overwrite duplicate files, but move them straight to the bin.
If you have any recommendations, solutions or improvements, I'm very open to them!
I am very grateful to you and think it's incredible what a service you offer!!!
Best regards
Seger
Re: Revert files via the GUI/CLI - restored to a different folder
viewtopic.php?t=12891
EDIT
FileBot r10891 now allows you to pass --output folder and / or --format expression options to filebot -revert commands to revert files into different folders / different file paths.Re: Revert files via the GUI/CLI - restored to a different folder
We're getting closer to the issue. Yes, I'm already using unsortedFormat, which sorts the files that weren't recognised by Filebot and require my manual GUI intervention. However, I don't want both the files that Filebot didn't recognise and the files that caused a conflict because they already existed.The --def unsortedFormat parameter allows you to define the target file path for unmatched files. You seem to be doing that already.
.
This idea could be the solution in my case. If I understand it correctly, I can work with the --conflict command in addition to --def unsortedFormat, and this would only refer to the conflict that the file already exists, and I could define a path for --conflict in addition to --def unsortedFormat?The --conflict option allows you to control what happens when the target file path exists already, so instead of --conflict override you can set a different behaviour there, you can even have your own custom code come up with a new different file path:
viewtopic.php?t=12891
Would that then have to be solved via index, and would we define the new path there, or do I have to control it via a custom Groovy code? Do you have a template here so that I can implement it? If so, perhaps my folder where only the conflict files should be saved: "/media/Upload_Download/1 Download/1 Encodieren/Papiekorb" An alternative to the path would be to delete via confict, if possible.
Thank you very much, but that doesn't apply in my specific case. I understand your suggestion, but I'm not going to do it for the following reasons:You'd make your life a lot easier if you ensure a unique file name for each unique input file. If it's a Director's Cut, then add [Directors Cut] to the file name, thus ensuring a unique file name that's not on the exclude list yet. If you want to revert files via the GUI, then the files will be moved back into the input folder, so your automation will need to account for that, either via the exclude list, or via the last-modified timestamp, or maybe something else.
It takes up significantly more storage space, and my family and I are more than happy with one version.
The second challenge would be that, in combination with my first point, I would eventually find myself in a situation where I wanted to update files that already exist.
In other words, if it were possible to separate them from --def unsortedFormat as I would like, that would be the solution and I could also stop the loop.
Re: Revert files via the GUI/CLI - restored to a different folder
Groovy: Select all
{ from, to ->
"/media/Upload_Download/1 Download/1 Encodieren/Papiekorb/" + to.name
}Re: Revert files via the GUI/CLI - restored to a different folder
Code: Select all
version: "3.9"
services:
filebot:
image: jlesage/filebot:latest
container_name: filebot
restart: unless-stopped
ports:
- "5800:5800"
# - "5900:5900" # optional VNC-Client
environment:
TZ: Europe/Berlin
USER_ID: "1030"
GROUP_ID: "100"
UMASK: "0022"
# UI / VNC
DISPLAY_WIDTH: "1920"
DISPLAY_HEIGHT: "1080"
VNC_PASSWORD: "password"
# HTTPS & Web-Auth
SECURE_CONNECTION: "1"
WEB_AUTHENTICATION: "1"
WEB_AUTHENTICATION_USERNAME: "user"
WEB_AUTHENTICATION_PASSWORD: "Password!!!"
# EMBY & HA für post-hook.sh
EMBY_HOST: "http://192.168.178.121:8096"
EMBY_API_KEY: "key"
HA_HOST: "http://192.168.178.122:8123"
HA_TOKEN: "token"
# Für Emby-Webhook
INSTALL_PACKAGES: "curl"
# NFS/XAttr
FILEBOT_OPTS: "-DuseExtendedFileAttributes=false"
# --- AMC (Polling) ---
AMC_ENABLED: "1"
AMC_INTERVAL: "20"
AMC_INPUT_STABLE_TIME: "30"
AMC_ACTION: "move"
AMC_MATCH_MODE: "opportunistic" # global opportunistic
AMC_LANG: "German"
# AMC_CONFLICT: "override" - raus damit
# Ein Mount für Quelle & Ziel -> rename(2) / Instant-Move
AMC_INPUT_DIR: "/media/Upload_Download/1 Download/1 Encodieren"
# Ziel-Formate (Routing: Standard + Kids + Dokus)
AMC_MOVIE_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderfilme'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Filme') }/{collection.replaceAll(/[:|]/, " - ")}/{n.replaceAll(/[:|]/, " - ")}
({y}) {[vf]}/{n.replaceAll(/[:|]/, " - ")} ({y}) {[vf]}
AMC_SERIES_FORMAT: >-
{ f.path.contains('/2 Kinderfilme_Kinderserien/')
? '/media/- Kinderserien'
: (f.path.contains('/3 Doku_Filme_Doku_Serien/')
? '/media/- Filme_Serien_(Dokumentationen)'
: '/media/- Serien') }/{n} ({y})/Staffel {s}/{n} - {s00e00} - {t} {[vf]}
AMC_CUSTOM_OPTIONS: >-
-non-strict
-r
--order Digital
--file-filter "['1 Filme_Encodiert (Fertig)','1 Serien_Encodiert (Fertig)','11 Kinderfilme_Encodiert (Fertig)','11 Kinderserien_Encodiert (Fertig)','111 Dokumentationen_Filme_Encodiert (Fertig)','111 Dokumentationen_Serien_Encodiert (Fertig)'].contains(f.parentFile.name)"
--filter "true"
--conflict /config/conflict_to_papierkorb.groovy
--def subtitles=n minFileSize=0
unsorted=y
unsortedFormat="/media/Upload_Download/1 Download/{file.name}"
excludeList=/dev/null
music=n
ignore="(?i)(?:^|/)1_nicht_löschen\.lock$|(?:^|/)(Backup alt|@eaDir)(?:/|$)"
exec="/config/scripts/post-hook.sh {quote f, historic.f}"
movieDB=TheMovieDB
seriesDB=TheTVDB
volumes:
- /srv/appdata/filebot:/config:rw
- /mnt/media:/media:rw
# --- GUI: eine Mount-Wurzel für Quelle+Ziel => echtes Move möglich ---
- /mnt/media:/storage:rw
# Ressourcen/Logging (dein Style)
cpu_shares: 256
cpus: "4.0"
mem_reservation: 2g
mem_limit: 3g
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks: [edge]
networks:
edge:
external: true
LOG
Code: Select all
2026-01-13T13:32:46.995928151Z [amc ] Parameter: animeFormat = {plex}
2026-01-13T13:32:46.995966779Z [amc ] Parameter: subtitles = n
2026-01-13T13:32:46.996050872Z [amc ] Parameter: minFileSize = 0
2026-01-13T13:32:46.996191013Z [amc ] Parameter: unsorted = y
2026-01-13T13:32:46.996276476Z [amc ] Parameter: unsortedFormat = /media/Upload_Download/1 Download/{file.name}
2026-01-13T13:32:46.996345855Z [amc ] Parameter: ignore = (?i)(?:^|/)1_nicht_löschen.lock$|(?:^|/)(Backup alt|@eaDir)(?:/|$)
2026-01-13T13:32:46.996450252Z [amc ] Parameter: exec = /config/scripts/post-hook.sh {quote f, historic.f}
2026-01-13T13:32:46.996700443Z [amc ] Parameter: movieDB = TheMovieDB
2026-01-13T13:32:46.996895277Z [amc ] Parameter: seriesDB = TheTVDB
2026-01-13T13:32:47.000557259Z [amc ] Argument[0]: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000578052Z [amc ] Argument[1]: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv
2026-01-13T13:32:47.000581088Z [amc ] Argument[2]: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000582204Z [amc ] Argument[3]: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderfilme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000583428Z [amc ] Argument[4]: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderserien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000584452Z [amc ] Argument[5]: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000585447Z [amc ] Argument[6]: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000586474Z [amc ] Argument[7]: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.000587483Z [amc ] Argument[8]: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.066615402Z [amc ] Use excludes: /dev/null (0)
2026-01-13T13:32:47.111279216Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.227416004Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.229028879Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderfilme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.230015108Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderserien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.231078371Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.231903187Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.232500783Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.233163021Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:32:47.235803240Z [amc ] Input: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv
2026-01-13T13:32:47.250236386Z [amc ] Group files by movie or series
2026-01-13T13:32:51.280081689Z [amc ] Group: {Movie=Ein zum Tode Verurteilter ist entflohen (1956), Series=null} => [Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv]
2026-01-13T13:32:51.289856990Z [amc ] Rename movies using [TheMovieDB]
2026-01-13T13:32:51.290750620Z [amc ] Auto-detect movie from context [/media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv]
2026-01-13T13:32:51.528350538Z [amc ] Apply filter [true] on [1] option
2026-01-13T13:32:51.529822422Z [amc ] Include [Ein zum Tode Verurteilter ist entflohen (1956)]
2026-01-13T13:32:51.529826362Z [amc ] [1] option remaining
2026-01-13T13:33:45.559304611Z [amc ] Failed to process [/media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv] because [/media/- Filme/Ein zum Tode Verurteilter ist entflohen(1956) [1080p]/Ein zum Tode Verurteilter ist entflohen (1956) [1080p].mkv] is an exact copy and already exists [Last-Modified: Sun Jan 04 11:20:36 CET 2026]
2026-01-13T13:33:45.560399755Z [amc ] Processed 0 files
2026-01-13T13:33:45.568504172Z [amc ] Processing 1 unsorted files
2026-01-13T13:33:45.618999387Z [amc ] [MOVE] from [/media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv] to [/media/Upload_Download/1 Download/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv]
2026-01-13T13:33:45.623040950Z [amc ] Processed 1 file
2026-01-13T13:33:45.632956468Z [amc ] Execute: /config/scripts/post-hook.sh '/media/Upload_Download/1 Download/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv' '/media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/Ein.zum.Tode.Verurteilter.ist.entflohen.1956.German.AC3D.DL.1080p.CC.BluRay.x265-FuN.mkv'
2026-01-13T13:34:06.809794786Z [amc ] Clean clutter files and empty folders
2026-01-13T13:34:06.833366378Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833383624Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833385402Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderfilme_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833386654Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderserien_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833393591Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Filme_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833394631Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Serien_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833557137Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.833641884Z [amc ] Keep /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock (not clutter)
2026-01-13T13:34:06.835594113Z [amc ] Done ヾ(@⌒ー⌒@)ノ
2026-01-13T13:34:27.598839673Z [amc ] Changes detected in input folder.
2026-01-13T13:34:27.651579265Z [amc ] Waiting 30 seconds before proceeding...
2026-01-13T13:34:57.792077512Z [amc ] Invoking AMC script...
2026-01-13T13:34:58.513878462Z [amc ] Run script [fn:amc] at [Tue Jan 13 14:34:58 CET 2026]
2026-01-13T13:34:58.520444033Z [amc ] Parameter: artwork = n
2026-01-13T13:34:58.522453391Z [amc ] Parameter: music = n
2026-01-13T13:34:58.522469831Z [amc ] Parameter: clean = y
2026-01-13T13:34:58.522484083Z [amc ] Parameter: excludeList = /dev/null
2026-01-13T13:34:58.523068737Z [amc ] Parameter: movieFormat = { f.path.contains('/2 Kinderfilme_Kinderserien/')
2026-01-13T13:34:58.523070968Z [amc ] ? '/media/- Kinderfilme'
2026-01-13T13:34:58.523072394Z [amc ] : (f.path.contains('/3 Doku_Filme_Doku_Serien/')
2026-01-13T13:34:58.523073841Z [amc ] ? '/media/- Filme_Serien_(Dokumentationen)'
2026-01-13T13:34:58.523075063Z [amc ] : '/media/- Filme') }/{collection.replaceAll(/[:|]/, " - ")}/{n.replaceAll(/[:|]/, " - ")}
2026-01-13T13:34:58.523076655Z [amc ] ({y}) {[vf]}/{n.replaceAll(/[:|]/, " - ")} ({y}) {[vf]}
2026-01-13T13:34:58.523078049Z [amc ] Parameter: musicFormat = {plex}
2026-01-13T13:34:58.523079302Z [amc ] Parameter: seriesFormat = { f.path.contains('/2 Kinderfilme_Kinderserien/')
2026-01-13T13:34:58.523080613Z [amc ] ? '/media/- Kinderserien'
2026-01-13T13:34:58.523081755Z [amc ] : (f.path.contains('/3 Doku_Filme_Doku_Serien/')
2026-01-13T13:34:58.523082946Z [amc ] ? '/media/- Filme_Serien_(Dokumentationen)'
2026-01-13T13:34:58.523084133Z [amc ] : '/media/- Serien') }/{n} ({y})/Staffel {s}/{n} - {s00e00} - {t} {[vf]}
2026-01-13T13:34:58.523171225Z [amc ] Parameter: animeFormat = {plex}
2026-01-13T13:34:58.523297139Z [amc ] Parameter: subtitles = n
2026-01-13T13:34:58.523431423Z [amc ] Parameter: minFileSize = 0
2026-01-13T13:34:58.524046883Z [amc ] Parameter: unsorted = y
2026-01-13T13:34:58.524080436Z [amc ] Parameter: unsortedFormat = /media/Upload_Download/1 Download/{file.name}
2026-01-13T13:34:58.524138251Z [amc ] Parameter: ignore = (?i)(?:^|/)1_nicht_löschen.lock$|(?:^|/)(Backup alt|@eaDir)(?:/|$)
2026-01-13T13:34:58.524171192Z [amc ] Parameter: exec = /config/scripts/post-hook.sh {quote f, historic.f}
2026-01-13T13:34:58.524247731Z [amc ] Parameter: movieDB = TheMovieDB
2026-01-13T13:34:58.524587346Z [amc ] Parameter: seriesDB = TheTVDB
2026-01-13T13:34:58.528570891Z [amc ] Argument[0]: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.528587550Z [amc ] Argument[1]: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529029797Z [amc ] Argument[2]: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderfilme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529032878Z [amc ] Argument[3]: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderserien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529033762Z [amc ] Argument[4]: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529034734Z [amc ] Argument[5]: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529035705Z [amc ] Argument[6]: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.529036468Z [amc ] Argument[7]: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.617551110Z [amc ] Use excludes: /dev/null (0)
2026-01-13T13:34:58.648020741Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648052460Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/1 Filme_Serien/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648054843Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderfilme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648056116Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/2 Kinderfilme_Kinderserien/11 Kinderserien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648057211Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648679700Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/3 Doku_Filme_Doku_Serien/111 Dokumentationen_Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648703691Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Filme_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.648980687Z [amc ] Ignore pattern: /media/Upload_Download/1 Download/1 Encodieren/Backup alt/1 Ordner Backup/1 Serien_Encodiert (Fertig)/1_nicht_löschen.lock
2026-01-13T13:34:58.664002399Z [amc ] No files selected for processing
2026-01-13T13:34:58.664027527Z [amc ] Done ¯_(ツ)_/¯
Code: Select all
// /config/conflict_to_papierkorb.groovy
def bin = new File("/media/Upload_Download/1 Download/1 Encodieren/Papierkorb")
bin.mkdirs()
{ File from, File to ->
// Wenn Größe ODER Datum anders: überschreiben (REPLACE)
if (from.length() != to.length() || from.lastModified() != to.lastModified()) {
return to
}
// Wenn identisch: ab in den Papierkorb (mit eindeutigem Namen)
def name = from.name
def dot = name.lastIndexOf('.')
def base = dot >= 0 ? name.substring(0, dot) : name
def ext = dot >= 0 ? name.substring(dot) : ''
def ts = System.currentTimeMillis()
return new File(bin, "${base}.DUP.${ts}${ext}")
}
--conflict /config/conflict_to_papierkorb.groovy
ignored. I would have thought that I had set it correctly.
Re: Revert files via the GUI/CLI - restored to a different folder
Code: Select all
Failed to process [...] because [...] is an exact copy and already exists [Last-Modified: Sun Jan 04 11:20:36 CET 2026]e.g.
Console Output: Select all
$ filebot -rename Alias.1x01.mkv --conflict '{ from, to -> "/path/to/Trash" / to.name }'
...
[MOVE] from [Alias.1x01.mkv] to [/path/to/Trash/Alias - 1x01 - Truth Be Told.mkv]