There are two files in the source for sickbeard. It's putting them in unique dirs; but the dir name is created with a space, but then failing as it tries to send to SickRage.
It looks to be putting the files into a unique directory name with spaces. Not sure if the spaces is the problem? Any way for it not to use spaces, just to prevent any headaches?
Thoughts?
[02:15:02] [INFO]::MAIN: Loading config from [/opt/nzbToMedia/autoProcessMedia.cfg]
[02:15:02] [INFO]::MAIN: Checking database structure...
[02:15:02] [DEBUG]::MAIN: Checking Initial Schema database upgrade
[02:15:02] [DB]::MAIN: nzbtomedia.db: SELECT 1 FROM sqlite_master WHERE name = ?; with args ('db_version',)
[02:15:02] [DB]::MAIN: nzbtomedia.db: SELECT db_version FROM db_version
[02:15:02] [DEBUG]::MAIN: InitialSchema upgrade not required
[02:15:02] [DEBUG]::MAIN: Checking if we can use git commands: "/usr/bin/git" version
[02:15:02] [DEBUG]::MAIN: Executing "/usr/bin/git" version with your shell in /opt/nzbToMedia
[02:15:02] [DEBUG]::MAIN: git output: git version 1.9.1
[02:15:02] [DEBUG]::MAIN: "/usr/bin/git" version : returned successful
[02:15:02] [DEBUG]::MAIN: Using: "/usr/bin/git"
[02:15:02] [DEBUG]::MAIN: Executing "/usr/bin/git" symbolic-ref -q HEAD with your shell in /opt/nzbToMedia
[02:15:02] [DEBUG]::MAIN: git output: refs/heads/dev
[02:15:02] [DEBUG]::MAIN: "/usr/bin/git" symbolic-ref -q HEAD : returned successful
[02:15:02] [INFO]::MAIN: Version checking is disabled, not checking for the newest version
[02:15:02] [INFO]::MAIN: nzbToMedia Version:10.8 Branch:dev (Linux 3.13.0-43-generic)
[02:15:02] [INFO]::MAIN: #########################################################
[02:15:02] [INFO]::MAIN: ## ..::[TorrentToMedia.py]::.. ##
[02:15:02] [INFO]::MAIN: #########################################################
[02:15:02] [DEBUG]::MAIN: Options passed into TorrentToMedia: ['/opt/nzbToMedia/TorrentToMedia.py']
[02:15:02] [WARNING]::MAIN: Invalid number of arguments received from client, Switching to manual run mode ...
[02:15:02] [INFO]::MAIN: Searching /mnt/storage/download/process/couchpotato for mediafiles to post-process ...
[02:15:02] [DEBUG]::MAIN: No directories identified in CouchPotato:couchpotato for post-processing
[02:15:02] [INFO]::MAIN: Searching /mnt/storage/download/process/sickbeard for mediafiles to post-process ...
[02:15:02] [DEBUG]::MAIN: Found file tv.show.name.s00e03.720p.hdtv.x264-mtg.mkv in root directory /mnt/storage/download/process/sickbeard.
[02:15:02] [INFO]::COPYLINK: MEDIAFILE: [tv.show.name.s00e03.720p.hdtv.x264-mtg.mkv]
[02:15:02] [INFO]::COPYLINK: SOURCE FOLDER: [/mnt/storage/download/process/sickbeard]
[02:15:02] [INFO]::COPYLINK: TARGET FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: Hard linking SOURCE MEDIAFILE -> TARGET FOLDER
[02:15:02] [DEBUG]::MAIN: Found file tv.show.name.s00e02.720p.hdtv.x264-w4f.mkv in root directory /mnt/storage/download/process/sickbeard.
[02:15:02] [INFO]::COPYLINK: MEDIAFILE: [tv.show.name.s00e02.720p.hdtv.x264-w4f.mkv]
[02:15:02] [INFO]::COPYLINK: SOURCE FOLDER: [/mnt/storage/download/process/sickbeard]
[02:15:02] [INFO]::COPYLINK: TARGET FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: Hard linking SOURCE MEDIAFILE -> TARGET FOLDER
[02:15:02] [INFO]::MAIN: Starting manual run for SickBeard:sickbeard - Folder:/mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [INFO]::MAIN: Checking database for download info for tv show name ...
[02:15:02] [DB]::DB: Getting download info for tv show name from the DB
[02:15:02] [DB]::MAIN: nzbtomedia.db: SELECT * FROM downloads WHERE input_name=? AND status=? with args [u'tv show name', 0]
[02:15:02] [INFO]::MAIN: Unable to locate download info for tv show name, continuing to try and process this release ...
[02:15:02] [DEBUG]::MAIN: Received Directory: /mnt/storage/download/process/sickbeard/tv show name | Name: tv show name | Category: sickbeard
[02:15:02] [DEBUG]::MAIN: SEARCH: Found the Category: sickbeard in directory structure
[02:15:02] [INFO]::MAIN: SEARCH: Found a unique directory tv show name in the category directory
[02:15:02] [DEBUG]::MAIN: Determined Directory: /mnt/storage/download/process/sickbeard/tv show name | Name: tv show name | Category: sickbeard
[02:15:02] [INFO]::MAIN: Auto-detected SECTION:SickBeard
[02:15:02] [INFO]::MAIN: Output directory set to: /mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [DEBUG]::MAIN: Scanning files in directory: /mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [DEBUG]::MAIN: Found 2 files in /mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [INFO]::COPYLINK: MEDIAFILE: [tv.show.name.s00e03.720p.hdtv.x264-mtg.mkv]
[02:15:02] [INFO]::COPYLINK: SOURCE FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: TARGET FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: SOURCE AND TARGET files are the same, skipping ...
[02:15:02] [INFO]::COPYLINK: MEDIAFILE: [tv.show.name.s00e02.720p.hdtv.x264-w4f.mkv]
[02:15:02] [INFO]::COPYLINK: SOURCE FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: TARGET FOLDER: [/mnt/storage/download/process/sickbeard/tv show name]
[02:15:02] [INFO]::COPYLINK: SOURCE AND TARGET files are the same, skipping ...
[02:15:02] [INFO]::MAIN: FLATTEN: Flattening directory: /mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [DEBUG]::MAIN: Checking for empty folders in:/mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [INFO]::MAIN: Found 2 media files in /mnt/storage/download/process/sickbeard/tv show name
[02:15:02] [INFO]::MAIN: Calling SickBeard:sickbeard to post-process:tv show name
Traceback (most recent call last):
File "/opt/nzbToMedia/TorrentToMedia.py", line 325, in <module>
exit(main(sys.argv))
File "/opt/nzbToMedia/TorrentToMedia.py", line 310, in main
clientAgent)
File "/opt/nzbToMedia/TorrentToMedia.py", line 209, in processTorrent
inputHash.upper(), inputCategory)
AttributeError: 'NoneType' object has no attribute 'upper'
Exception AttributeError: "'NoneType' object has no attribute 'path'" in <bound method PosixProcess.__del__ of <nzbtomedia.nzbToMediaUtil.PosixProcess instance at 0x7fcc8ed9e9e0>> ignored
# nzbToMedia Configuration
# For more information, visit https://github.com/clinton-hall/nzbToMedia/wiki
[General]
# Enable/Disable update notifications
version_notify = 0
# Enable/Disable automatic updates
auto_update = 0
# Set to the full path to the git executable
git_path = /usr/bin/git
# GitHUB user for repo
git_user = ""
# GitHUB branch for repo
git_branch = dev
# Enable/Disable forceful cleaning of leftover files following postprocess
force_clean = 0
# Enable/Disable logging debug messages to nzbtomedia.log
log_debug = 1
# Enable/Disable logging database messages to nzbtomedia.log
log_db = 1
# Enable/Disable logging environment variables to debug nzbtomedia.log (helpful to track down errors calling external tools.)
log_env = 1
# Enable/Disable logging git output to debug nzbtomedia.log (helpful to track down update failures.)
log_git = 1
# Set to the directory where your ffmpeg/ffprobe executables are located
ffmpeg_path = /usr/bin
# Enable/Disable media file checking using ffprobe.
check_media = 0
# Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectories by mistake.
safe_mode = 1
[Posix]
### Process priority setting for External commands (Extractor and Transcoder) on Posix (Unix/Linux/OSX) systems.
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
niceness = 5
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
ionice_class = 2
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
ionice_classdata = 4
[CouchPotato]
#### autoProcessing for Movies
#### movie - category that gets called for post-processing with CPS
[[movie]]
enabled = 0
apikey = ""
host = localhost
port = 5050
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
ssl = 0
web_root = ""
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
method = renamer
delete_failed = 0
wait_for = 2
extract = 1
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if Couchpotato is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[[couchpotato]]
enabled = 1
apikey =
host =
port =
ssl = 0
web_root = ""
Torrent_NoLink = 0
method = renamer
delete_failed = 1
wait_for = 2
extract = 1
minSize = 0
delete_ignored = 1
remote_path = 0
watch_dir = /mnt/storage/download/process/couchpotato
[SickBeard]
#### autoProcessing for TV Series
#### tv - category that gets called for post-processing with SB
[[tv]]
enabled = 0
host = localhost
port = 8081
username = ""
password = ""
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
web_root = ""
ssl = 0
fork = auto
delete_failed = 0
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
process_method = ""
# force processing of already processed content when running a manual scan.
force = 0
extract = 1
nzbExtractionBy = Downloader
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if SickBeard is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[[sickbeard]]
enabled = 1
host =
port =
username = ""
password = ""
web_root = ""
ssl = 0
fork = auto
delete_failed = 1
Torrent_NoLink = 0
process_method = ""
force = 0
extract = 0
nzbExtractionBy = Destination
minSize = 0
delete_ignored = 1
remote_path = 0
watch_dir = /mnt/storage/download/process/sickbeard
[NzbDrone]
#### autoProcessing for TV Series
#### ndCategory - category that gets called for post-processing with NzbDrone
[[tv]]
enabled = 0
apikey = ""
host = localhost
port = 8989
username = ""
password = ""
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
web_root = ""
ssl = 0
delete_failed = 0
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
extract = 1
nzbExtractionBy = Downloader
wait_for = 2
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if NzbDrone is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[HeadPhones]
#### autoProcessing for Music
#### music - category that gets called for post-processing with HP
[[music]]
enabled = 0
apikey = ""
host = localhost
port = 8181
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
ssl = 0
web_root = ""
wait_for = 2
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
extract = 1
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if HeadPhones is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[Mylar]
#### autoProcessing for Comics
#### comics - category that gets called for post-processing with Mylar
[[comics]]
enabled = 0
host = localhost
port = 8090
username = ""
password = ""
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
web_root = ""
ssl = 0
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
extract = 1
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if Mylar is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[Gamez]
#### autoProcessing for Games
#### games - category that gets called for post-processing with Gamez
[[games]]
enabled = 0
apikey = ""
host = localhost
port = 8085
######
library = Set to path where you want the processed games to be moved to.
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
ssl = 0
web_root = ""
# Enable/Disable linking for Torrents
Torrent_NoLink = 0
extract = 1
# Set this to minimum required size to consider a media file valid (in MB)
minSize = 0
# Enable/Disable deleteing ignored files (samples and invalid media files)
delete_ignored = 0
##### Enable if Gamez is on a remote server for this category
remote_path = 0
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[Network]
# Enter Mount points as LocalPath,RemotePath and separate each pair with '|'
# e.g. MountPoints = /volume1/Public/,E:\|/volume2/share/,\\NAS\
mount_points = ""
[Nzb]
###### clientAgent - Supported clients: sabnzbd, nzbget
clientAgent = sabnzbd
###### SabNZBD (You must edit this if your using nzbToMedia.py with SabNZBD)
sabnzbd_host =
sabnzbd_port =
sabnzbd_apikey =
###### Enter the default path to your default download directory (non-category downloads). this directory is protected by safe_mode.
default_downloadDirectory = ""
[Torrent]
###### clientAgent - Supported clients: utorrent, transmission, deluge, rtorrent, vuze, other
clientAgent = rtorrent
###### useLink - Set to hard for physical links, sym for symbolic links, move to move, and no to not use links (copy)
useLink = no
###### outputDirectory - Default output directory (categories will be appended as sub directory to outputDirectory)
outputDirectory = /mnt/storage/download/process
###### Enter the default path to your default download directory (non-category downloads). this directory is protected by safe_mode.
default_downloadDirectory = ""
###### Other categories/labels defined for your downloader. Does not include CouchPotato, SickBeard, HeadPhones, Mylar categories.
categories = manual, movies, tv, music
###### A list of categories that you don't want to be flattened (i.e preserve the directory structure when copying/linking.
noFlatten = manual, movies, tv, music
###### uTorrent Hardlink solution (You must edit this if your using TorrentToMedia.py with uTorrent)
uTorrentWEBui = http://localhost:8090/gui/
uTorrentUSR = your username
uTorrentPWD = your password
###### Transmission (You must edit this if your using TorrentToMedia.py with uTorrent)
TransmissionHost = localhost
TransmissionPort = 8084
TransmissionUSR = your username
TransmissionPWD = your password
#### Deluge (You must edit this if your using TorrentToMedia.py with deluge. Note that the host/port is for the deluge daemon, not the webui)
DelugeHost = localhost
DelugePort = 58846
DelugeUSR = your username
DelugePWD = your password
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
deleteOriginal = 0
[Extensions]
compressedExtensions = .zip, .rar, .7z, .gz, .bz, .tar, .arj, .1, .01, .001
mediaExtensions = .mkv, .avi, .divx, .xvid, .mov, .wmv, .mp4, .mpg, .mpeg, .vob, .iso, .m4v, .m2ts
audioExtensions = .mp3, .aac, .ogg, .ape, .m4a, .asf, .wma, .flac
metaExtensions = .nfo, .sub, .idx, .srt, .jpg, .gif
[Transcoder]
# getsubs. enable to download subtitles.
getSubs = 0
# subLanguages. create a list of languages in the order you want them in your subtitles.
subLanguages = eng, spa, fra
# transcode. enable to use transcoder
transcode = 0
###### duplicate =1 will cretae a new file. =0 will replace the original
duplicate = 1
# concat. joins cd1 cd2 etc into a single video.
concat = 1
ignoreExtensions = .avi, .mkv, .mp4
# outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used.
outputFastStart = 0
# outputQualityPercent. used as -q:a value. 0 will disable this from being used.
outputQualityPercent = 0
# outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable.
outputVideoPath = ""
# processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files.
processOutput = 0
# audioLanguage. set the 3 letter language code you want as your primary audio track.
audioLanguage = eng
# allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available.
allAudioLanguages = 0
# allSubLanguages. 1 will keep all exisiting sub languages. 0 will discare those not in your list above.
allSubLanguages = 0
# embedSubs. 1 will embded external sub/srt subs into your video if this is supported.
embedSubs = 1
# burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs)
burnInSubtitle = 0
# extractSubs. 1 will extract subs from the video file and save these as external srt files.
extractSubs = 0
# externalSubDir. set the directory where subs should be saved (if not the same directory as the video)
externalSubDir = ""
# hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg)
hwAccel = 0
# generalOptions. Enter your additional ffmpeg options here with commas to separate each option/value (i.e replace spaces with commas).
generalOptions = ""
# outputDefault. Loads default configs for the selected device. The remaining options below are ignored.
# If you want to use your own profile, leave this blank and set the remaining options below.
# outputDefault profiles allowed: iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release
outputDefault = ""
#### Define custom settings below.
outputVideoExtension = .mp4
outputVideoCodec = libx264
VideoCodecAllow = ""
outputVideoPreset = medium
outputVideoResolution = 1920:1080
outputVideoFramerate = 24
outputVideoBitrate = 800000
outputVideoCRF = 19
outputVideoLevel = 3.1
outputAudioCodec = ac3
AudioCodecAllow = ""
outputAudioChannels = 6
outputAudioBitrate = 640k
outputAudioTrack2Codec = libfaac
AudioCodec2Allow = ""
outputAudioTrack2Channels = 2
outputAudioTrack2Bitrate = 128000
outputAudioOtherCodec = libmp3lame
AudioOtherCodecAllow = ""
outputAudioOtherChannels = ""
outputAudioOtherBitrate = 128000
outputSubtitleCodec = ""
[WakeOnLan]
###### set wake = 1 to send WOL broadcast to the mac and test the server (e.g. xbmc) the host and port specified.
wake = 0
host = ""
port = ""
mac = ""
[UserScript]
#Use user_script for uncategorized downloads
#Set the categories to use external script.
#Use "UNCAT" to process non-category downloads, and "ALL" for all defined categories.
[[UNCAT]]
#Enable/Disable this subsection category
enabled = 0
Torrent_NoLink = 0
extract = 1
#Enable if you are sending commands to a remote server for this category
remote_path = 0
#What extension do you want to process? Specify all the extension, or use "ALL" to process all files.
user_script_mediaExtensions = .mkv, .avi, .divx, .xvid, .mov, .wmv, .mp4, .mpg, .mpeg
#Specify the path to your custom script. Use "None" if you wish to link this category, but NOT run any external script.
user_script_path = /nzbToMedia/userscripts/script.sh
#Specify the argument(s) passed to script, comma separated in order.
#for example FP,FN,DN, TN, TL for file path (absolute file name with path), file name, absolute directory name (with path), Torrent Name, Torrent Label/Category.
#So the result is /media/test/script/script.sh FP FN DN TN TL. Add other arguments as needed eg -f, -r
user_script_param = FN
#Set user_script_runOnce = 0 to run for each file, or 1 to only run once (presumably on teh entire directory).
user_script_runOnce = 0
#Specify the successcodes returned by the user script as a comma separated list. Linux default is 0
user_script_successCodes = 0
#Clean after? Note that delay function is used to prevent possible mistake :) Delay is intended as seconds
user_script_clean = 1
delay = 120
#Unique path (directory) created for every download. set 0 to disable.
unique_path = 1
##### Set to path where download client places completed downloads locally for this category
watch_dir = ""
[[movies]]
enabled = 1
Torrent_NoLink = 0
extract = 1
remote_path = 0
user_script_mediaExtensions = ALL
user_script_path = none
user_script_param = ""
user_script_runOnce = 1
user_script_successCodes = 0
user_script_clean = 0
delay = 0
unique_path = 0
watch_dir = ""
[[tv]]
enabled = 1
Torrent_NoLink = 0
extract = 1
remote_path = 0
user_script_mediaExtensions = ALL
user_script_path = none
user_script_param = ""
user_script_runOnce = 1
user_script_successCodes = 0
user_script_clean = 0
delay = 0
unique_path = 0
watch_dir = ""
[[music]]
enabled = 1
Torrent_NoLink = 0
extract = 1
remote_path = 0
user_script_mediaExtensions = ALL
user_script_path = none
user_script_param = ""
user_script_runOnce = 1
user_script_successCodes = 0
user_script_clean = 0
delay = 0
unique_path = 0
watch_dir = ""
[[manual]]
enabled = 1
Torrent_NoLink = 0
extract = 1
remote_path = 0
user_script_mediaExtensions = ALL
user_script_path = none
user_script_param = ""
user_script_runOnce = 1
user_script_successCodes = 0
user_script_clean = 0
delay = 0
unique_path = 0
watch_dir = ""
[ASCII]
#Set convert =1 if you want to convert any "foreign" characters to ASCII (UTF8) before passing to SB/CP etc. Default is disabled (0).
convert = 0
[passwords]
# enter the full path to a text file containing passwords to be used for extraction attempts.
# In the passwords file, every password should be on a new line
PassWordFile = ""
[Custom]
# enter a list (comma separated) of Group Tags you want removed from filenames to help with subtitle matching.
# e.g remove_group = [rarbag],-NZBgeek
# be careful if your "group" is a common "real" word. Please report if you have any group replacments that would fall in this category.
remove_group = ""
This is from a manual run of TorrentToMedia.py
There are two files in the source for sickbeard. It's putting them in unique dirs; but the dir name is created with a space, but then failing as it tries to send to SickRage.
It looks to be putting the files into a unique directory name with spaces. Not sure if the spaces is the problem? Any way for it not to use spaces, just to prevent any headaches?
Thoughts?