Having a synology NAS is great. However when dealing with 32tb, good file management is a must!
I have 2 primary folders, Films and Series. The set of below scripts iterate the files and use the TVDB and MovieDB to clean up the file names.
The second scripts downloads any missing subtitles for the media 🙂
File renaming
&1" ) ); foreach( $loglines as $logline ) { $line = trim( $logline ); if( $line == "" ) continue; if( preg_match( "/^Skipped.*$/", $line, $dontcare ) ) continue; if( preg_match( "/^Auto-detect movie from context.*$/", $line, $dontcare ) ) continue; if( preg_match( "/.*Rename movies using.*$/", $line, $dontcare ) ) continue; $ploglines[] = $line; } $frt = implode( "\r\n" , $ploglines ); $body = "Dear user,\n\n $frt \n\nSincerely,\nSynology DiskStation\n\n"; mail($email, 'DSM - Filebot Rename Report - Films', "$body"); $log = "/volume1/homes/admin/cleanup/report-rename.txt"; unlink( $log ); touch( $log ); if ($handle = opendir('/volume1/Entertainment/Series/')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $cmd = "filebot -r -rename \"/volume1/Entertainment/Series/$entry/\" --db TheTVDB 2>&1"; $frt = shell_exec( $cmd ); file_put_contents( $log, $frt . "\n\n", FILE_APPEND | LOCK_EX ); } } closedir($handle); } $ploglines = array(); $loglines = file( $log ); foreach( $loglines as $logline ) { $line = trim( $logline ); if( $line == "" ) continue; if( preg_match( "/'^Skipped.*$/", $line, $dontcare ) ) continue; if( preg_match( "/^Fetching episode data.*$/", $line, $dontcare ) ) continue; if( preg_match( "/^Processed.$*/", $line, $dontcare ) ) continue; if( preg_match( "/^Done.*$/", $line, $dontcare ) ) continue; if( preg_match( "/^Failure.*$/", $line, $dontcare ) ) continue; if( preg_match( "/^No media files.*$/", $line, $dontcare ) ) continue; $ploglines[] = $line; } $frt = implode( "\r\n" , $ploglines ); $body = "Dear user,\n\n $frt \n\nSincerely,\nSynology DiskStation\n\n"; mail($email, "DSM - Filebot Rename Report - Series $entry", "$body");
Subtitles scripts
&1" ); $body = "Dear user,\n\n $fst \n\nSincerely,\nSynology DiskStation\n\n"; mail($email, 'DSM - Filebot Subtitles Report - Films', "$body"); if ($handle = opendir('/volume1/Entertainment/Series/')) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { $cmd = "filebot -r -script fn:suball \"/volume1/Entertainment/Series/$entry/\" --lang en -non-strict --db TheTVDB 2>&1"; $frt = shell_exec( $cmd ); file_put_contents( $log, $frt . "\n\n", FILE_APPEND | LOCK_EX ); } } closedir($handle); } $frt = file_get_contents( $log ); $body = "Dear user,\n\n $frt \n\nSincerely,\nSynology DiskStation\n\n"; mail('dave@fio.ie', "DSM - Filebot Subtitles Report - Series $entry", "$body");
Cron Job
ash-4.3# cat /etc/crontab MAILTO="" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin #minute hour mday month wday who command 0 0 1 * * root /usr/syno/bin/syno_disk_health_record 0 0 * * 3 root /usr/bin/php /var/services/homes/admin/cleanup/filebot-rename.php 0 0 * * 5 root /usr/bin/php /var/services/homes/admin/cleanup/filebot-subtitles.php 5 3 * * 6 root /usr/syno/bin/synomyds --report_info 0 3 * * 1 root /tmp/synoschedtask --run id=1 0 3 13 * * root /tmp/synoschedtask --run id=2 11 2 * * 4 root /tmp/synoschedtask --run id=3