[production] ;youtubeclaiming.error.email["yt-claiming-alerts@theorchard.com"] = "Youtube Alert Crew" ;youtubeclaiming.error.email["orchardteam@synergytechservices.com"] = "Synergy" ;ON PRODUCTION ONLY!!!!! UNCOMMENT THE 2 LINES ABOVE youtubeclaiming.error.emailSubject = "Error Youtube Claiming (Prod)" ;Google Oauth. Get these from google console oauth.client_id = "6909281553-bbb9uimfumokebead43mj3ates22qgke.apps.googleusercontent.com" oauth.client_secret = "UH6G_ieUn8VHdboVGr_tpfCZ" oauth.developer_key = "AIzaSyBU5Qrsz8RQpauML7FFfS51pMQx7tW7Fgg" oauth.approval_prompt = "auto" oauth.access_type = "offline" ;list all scopes the api calls need access to oauth.scopes[] = "https://www.googleapis.com/auth/youtube" oauth.scopes[] = "https://www.googleapis.com/auth/youtube.readonly" oauth.scopes[] = "https://www.googleapis.com/auth/youtube.upload" oauth.scopes[] = "https://www.googleapis.com/auth/youtubepartner" ;Google redirect_url for Manually re-auth ;Manual script using browser to re-authenticate if ever needed. Google Rep says as long as we don't deny access to ourselves, ;we should never need to do this. If we do need to do it, it can be run on a local non-prod machine oauth.redirect_url = "http://klasalvia.marketing.devorch.com/YoutubeAuthManually.php" ;YoutubeApi calls defaults ;Policy is to Monetize in all countries youtubeapi.rules.action = "monetize" youtubeapi.rules.conditions.requiredTerritories.type = "exclude" youtubeapi.rules.conditions.contentMatchType = "audiovisual" ;orchard country mappings to youtube country iso3166 code youtubeapi.countries.CS[] = "RS" youtubeapi.countries.AN[] = "CW" youtubeapi.countries.AN[] = "SX" ;Cache settings for the script cache.memcached.host = {{ MEMCACHE_HOST }}; cache.memcached.port = {{ MEMCACHE_PORT}}; ;Queue configs queue.key = '{{ AWS_KEY }}' queue.secret = '{{ AWS_SECRET }}' queue.region = '{{ AWS_REGION }}' queue.queueAdapter = 'AmazonSQS' ;Queue names in SQS queue.activitiesQ.queueName = 'bacon_activitiesQ' queue.videoQ.queueName = 'bacon_videoQ' queue.releasesQ.queueName = 'bacon_releasesQ' queue.tracksQ.queueName = 'bacon_tracksQ' queue.assetQ.queueName = 'bacon_assetQ' queue.ownershipQ.queueName = 'bacon_ownershipQ' queue.claimsQ.queueName = 'bacon_claimsQ' queue.assetmatchQ.queueName = 'bacon_assetmatchQ' queue.referencesQ.queueName = 'bacon_referencesQ' queue.defaultErrorQ.queueName = 'bacon_defaultErrorQ' queue.alreadyClaimedErrorQ.queueName = 'bacon_alreadyClaimedErrorQ' queue.videoStatusQ.queueName = 'bacon_videoStatusQ' queue.failedStatusUpdateQ.queueName = 'bacon_failedStatusUpdateQ' queue.statusUpdateErrorQ.queueName ='bacon_statusUpdateErrorQ' ;Queue configuration options queue.attributes.VisibilityTimeout = 20 queue.attributes.MessageRetentionPeriod = 1209600 ;Message Options queue.messageOptions.VisibilityTimeout = 20 queue.messageOptions.MaxNumberOfMessages = 1 queue.messageOptions.WaitTimeSeconds = 10 ;Redrive policy options queue.redrivePolicy.maxReceiveCount = '10' queue.redrivePolicy.deadLetterTargetArn = 'arn:aws:sqs:us-east-1:437795906767:prod_bacon_defaultErrorQ' ;Cron Agent configs - runs procsses including consumers agent.php_execution_path = "/usr/local/bin/php" agent.logpath = "REPLACE ME" agent.loglevel = 6 agent.sqlite_path ="REPLACE ME" agent.worker_php_execution_process_basepath = APPLICATION_PATH "/../scripts/YoutubeClaiming/Run/" ;consumers are stored here. agent.default_minimum_processes_of_each_type = 1 ; Cron Agent Process Registry: ; -- Single Process Actions ; These processes should not be multithreaded agent.process_type_array[] = "ActivitiesQPopulation" agent.process_type.ActivitiesQPopulation.minimum_processes = 1 ; ALWAYS 1 agent.process_type.ActivitiesQPopulation.runpath = "Startup/" agent.process_type_array[] = "ManuallySubmittedVideoConsumer" agent.process_type.ManuallySubmittedVideoConsumer.minimum_processes = 1 ; ALWAYS 1 agent.process_type.ManuallySubmittedVideoConsumer.runpath = "Consumers/" agent.process_type_array[] = "VideoTableConsumer" agent.process_type.VideoTableConsumer.minimum_processes = 1 ; ALWAYS 1 agent.process_type.VideoTableConsumer.runpath = "Consumers/" ; -- Multiple Process Consumers ; These processes can run many in parallel agent.process_type_array[] = "ActivitiesQConsumer" agent.process_type.ActivitiesQConsumer.minimum_processes = 3 agent.process_type.ActivitiesQConsumer.runpath = "Consumers/" agent.process_type_array[] = "VideoQConsumer" agent.process_type.VideoQConsumer.minimum_processes = 3 agent.process_type.VideoQConsumer.runpath = "Consumers/" agent.process_type_array[] = "TracksQConsumer" ; Changing to 1 as its parallel scripts are inserting duplicated track_id in track table agent.process_type.TracksQConsumer.minimum_processes = 1 agent.process_type.TracksQConsumer.runpath = "Consumers/" agent.process_type_array[] = "AssetQConsumer" agent.process_type.AssetQConsumer.minimum_processes = 3 agent.process_type.AssetQConsumer.runpath = "Consumers/" agent.process_type_array[] = "OwnershipQConsumer" agent.process_type.OwnershipQConsumer.minimum_processes = 3 agent.process_type.OwnershipQConsumer.runpath = "Consumers/" agent.process_type_array[] = "AssetMatchQConsumer" agent.process_type.AssetMatchQConsumer.minimum_processes = 3 agent.process_type.AssetMatchQConsumer.runpath = "Consumers/" agent.process_type_array[] = "ClaimsQConsumer" agent.process_type.ClaimsQConsumer.minimum_processes = 3 agent.process_type.ClaimsQConsumer.runpath = "Consumers/" agent.process_type_array[] = "ReferencesQConsumer" agent.process_type.ReferencesQConsumer.minimum_processes = 3 agent.process_type.ReferencesQConsumer.runpath = "Consumers/" ;Consumer settings ; How long calls need to work without error after a lock expires to reset lock lengthening consumers.lockSafetySec = 30 ; How long a lock can be before a consumer will simply end its process instead of retrying consumers.cacheRetryThresholdSec = 6 ; the lock will double up to the following number and then hold consumers.maximumLockTimeSec = 1200; // = 20 minutes ;Individual consumer settings ;freeWait is amount of time to listen for messages with no messages being found consumer.activitiesQ.freeWaitSec = 600 ;10 mins consumer.videoQ.freeWaitSec = 600 ;10 mins consumer.releasesQ.freeWaitSec = 600 ;10 mins consumer.tracksQ.freeWaitSec = 600 ;10 mins consumer.assetQ.freeWaitSec = 600 ;10 mins consumer.assetmatchQ.freeWaitSec = 600 ;10 mins consumer.ownershipQ.freeWaitSec = 600 ;10 mins consumer.claimsQ.freeWaitSec = 600 ;10 mins consumer.referencesQ.freeWaitSec = 600 ;10 mins consumer.videoStatusQ.freeWaitSec = 600 ;10 mins ; ActivitiesQ Population ; these durations can be anything parseable by PHP's createFromDateString ; http://php.net/manual/en/dateinterval.createfromdatestring.php activitiesqpopulation.logpath = "REPLACE ME" activitesqpopulation.duration_between_runs = "10 min" activitesqpopulation.how_far_back_to_check_videos_from_last_run_time = "5 min" activitesqpopulation.run_time_difference_to_send_mail = 3600 ;1 hour ;Csv Reader and logger configs - manual script for taking CMS report and claiming all the videos csvReader.contentPath = "REPLACE ME" csvReader.logPath = "REPLACE ME" csvReader.logValue = 4 [development : production] youtubeclaiming.error.emailSubject = "Error Youtube Claiming (Dev)" youtubeclaiming.error.email["youremail"] = "Your Name" ;Csv Reader and logger configs csvReader.contentPath = APPLICATION_PATH "/../scripts/YoutubeClaiming/CsvContent/" csvReader.logValue = 4 ;Cache settings for the script cache.memcached.host = :MEMCACHE_HOST cache.memcached.port = :MEMCACHE_PORT ;Queue configs queue.key = '{{ AWS_KEY }}' queue.secret = '{{ AWS_SECRET }}' queue.region = '{{ AWS_REGION }}' queue.queueAdapter = 'AmazonSQS' ;Queue names in SQS queue.activitiesQ.queueName = 'dev_bacon_activitiesQ' queue.videoQ.queueName = 'dev_bacon_videoQ' queue.releasesQ.queueName = 'dev_bacon_releasesQ' queue.tracksQ.queueName = 'dev_bacon_tracksQ' queue.assetQ.queueName = 'dev_bacon_assetQ' queue.ownershipQ.queueName = 'dev_bacon_ownershipQ' queue.claimsQ.queueName = 'dev_bacon_claimsQ' queue.assetmatchQ.queueName = 'dev_bacon_assetmatchQ' queue.referencesQ.queueName = 'dev_bacon_referencesQ' queue.defaultErrorQ.queueName = 'dev_bacon_defaultErrorQ' queue.alreadyClaimedErrorQ.queueName = 'dev_bacon_alreadyClaimedErrorQ' queue.videoStatusQ.queueName = 'dev_bacon_videoStatusQ' queue.failedStatusUpdateQ.queueName = 'dev_bacon_failedStatusUpdateQ' queue.statusUpdateErrorQ.queueName ='dev_bacon_statusUpdateErrorQ' ;Queue configuration options queue.attributes.VisibilityTimeout = 20 queue.attributes.MessageRetentionPeriod = 1209600 ;Message Options queue.messageOptions.VisibilityTimeout = 20 queue.messageOptions.MaxNumberOfMessages = 1 queue.messageOptions.WaitTimeSeconds = 10 ;Redrive policy options queue.redrivePolicy.maxReceiveCount = '10' queue.redrivePolicy.deadLetterTargetArn = 'arn:aws:sqs:us-east-1:437795906767:dev_bacon_defaultErrorQ' ;Cron Agent configs ; directory not filename agent.logpath = APPLICATION_PATH "/../scripts/YoutubeClaiming/Run/Logs/" agent.loglevel = 6 agent.sqlite_path = APPLICATION_PATH "/../scripts/YoutubeClaiming/Run/YoutubeChannelClaimingProcessesDB.sqlite3" ; Cron Agent Process Registry: ; -- Single Process Actions ; These processes should not be multithreaded agent.process_type_array[] = "ActivitiesQPopulation" agent.process_type.ActivitiesQPopulation.minimum_processes = 1 ; ALWAYS 1 agent.process_type.ActivitiesQPopulation.runpath = "Startup/" agent.process_type_array[] = "ManuallySubmittedVideoConsumer" agent.process_type.ManuallySubmittedVideoConsumer.minimum_processes = 1 ; ALWAYS 1 agent.process_type.ManuallySubmittedVideoConsumer.runpath = "Consumers/" agent.process_type_array[] = "VideoTableConsumer" agent.process_type.VideoTableConsumer.minimum_processes = 1 ; ALWAYS 1 agent.process_type.VideoTableConsumer.runpath = "Consumers/" ; -- Multiple Process Consumers ; These processes can run many in parallel agent.process_type_array[] = "ActivitiesQConsumer" agent.process_type.ActivitiesQConsumer.minimum_processes = 3 agent.process_type.ActivitiesQConsumer.runpath = "Consumers/" agent.process_type_array[] = "VideoQConsumer" agent.process_type.VideoQConsumer.minimum_processes = 3 agent.process_type.VideoQConsumer.runpath = "Consumers/" agent.process_type_array[] = "TracksQConsumer" ; Changing to 1 as its parallel scripts are inserting duplicated track_id in track table agent.process_type.TracksQConsumer.minimum_processes = 1 agent.process_type.TracksQConsumer.runpath = "Consumers/" agent.process_type_array[] = "AssetQConsumer" agent.process_type.AssetQConsumer.minimum_processes = 3 agent.process_type.AssetQConsumer.runpath = "Consumers/" agent.process_type_array[] = "OwnershipQConsumer" agent.process_type.OwnershipQConsumer.minimum_processes = 3 agent.process_type.OwnershipQConsumer.runpath = "Consumers/" agent.process_type_array[] = "AssetMatchQConsumer" agent.process_type.AssetMatchQConsumer.minimum_processes = 3 agent.process_type.AssetMatchQConsumer.runpath = "Consumers/" agent.process_type_array[] = "ClaimsQConsumer" agent.process_type.ClaimsQConsumer.minimum_processes = 3 agent.process_type.ClaimsQConsumer.runpath = "Consumers/" agent.process_type_array[] = "ReferencesQConsumer" agent.process_type.ReferencesQConsumer.minimum_processes = 3 agent.process_type.ReferencesQConsumer.runpath = "Consumers/" ; ActivitiesQ Population activitiesqpopulation.logpath = APPLICATION_PATH "/../scripts/YoutubeClaiming/Run/Logs/" activitesqpopulation.duration_between_runs = "10 min" activitesqpopulation.how_far_back_to_check_videos_from_last_run_time = "5 min" activitesqpopulation.run_time_difference_to_send_mail = 3600 ;1 hour ; Only used for testing a limited set of channels. Set to true and list desired test channels activitesqpopulation.run_only_from_channel_whitelist = "true" activitesqpopulation.channel_whitelist[] = "marketingtoolstest" [testing : development]