"""Config for YouTube Bulk Reports workflow.""" import os feed_name = 'youtube_bulk_reports' secrets_path = 'youtube_bulk_reports' feed_version = '1.0' s3_feed_name = 'YouTubeBulkReports' # environment to run in environment = os.environ.get('ENVIRONMENT', 'dev') licensors = ['theorchard', 'sme'] s3_bucket = os.environ.get('FEED_INGESTION_DATA_BUCKET', 'dev-cucumbers') _base_s3_archive_path = \ '{s3_feed_name}/archives/{{date:%Y-%m-%d}}/{{licensor}}/'.format( s3_feed_name=s3_feed_name ) archive_paths = { 'theorchard': _base_s3_archive_path, 'sme': '{base_archive_path}{{report_name}}/'.format( base_archive_path=_base_s3_archive_path) } youtube_reporting_api_service_name = 'youtubereporting' youtube_reporting_api_version = 'v1' jobs_meta_path = os.path.join( os.path.dirname(__file__), 'jobs_no_playlists.json') credentials_paths = { 'theorchard': '/'.join( os.path.dirname(__file__).split('/')[:-2] + ['conf', 'youtube_access_token.json']) } # Content owner IDs generated by YouTube. orch = 'J8vAyKuNSYBIN_9RIdxggQ' ent = 'oVAQ96fyMa57I6WozL2gUw' orchard_content_owners_map = { orch: 'ORCH', ent: 'ENT', } sme_content_owner = 'SME' sme_source_file_pattern = r'^\d{8}_\d{6}_\d{5}_\w+_\w+\-\w+\-\w+\-\w+\-\w+$' v1_reports = { 'basic': 'useractivity', 'estimated_revenue': 'revenue', } sme_athena_database = os.environ.get('SME_ATHENA_DATABASE') sme_athena_temp_database = os.environ.get('SME_ATHENA_TEMP_DATABASE') athena_workgroup = os.environ.get('ATHENA_WORKGROUP', 'primary') athena_aws_region = os.environ.get('ATHENA_AWS_REGION', 'us-east-1') # map our short report_name to youtube report id reports_mapping = { 'active_claims': 'content_owner_active_claims_a1', 'active_references': 'content_owner_active_references_a1', 'ad_rates': 'content_owner_ad_rates_a1', 'annotations': 'content_owner_annotations_a1', 'asset_annotations': 'content_owner_asset_annotations_a1', 'asset_basic': 'content_owner_asset_basic_a3', 'asset_cards': 'content_owner_asset_cards_a1', 'asset_combined': 'content_owner_asset_combined_a3', 'asset_conflict': 'content_owner_asset_conflict_a3', 'asset_demographics': 'content_owner_asset_demographics_a1', 'asset_device_os': 'content_owner_asset_device_os_a3', 'asset_estimated_revenue': 'content_owner_asset_estimated_revenue_a1', 'asset_end_screens': 'content_owner_asset_end_screens_a1', 'asset_playback_location': 'content_owner_asset_playback_location_a3', 'asset_province': 'content_owner_asset_province_a3', 'asset_sharing_service': 'content_owner_asset_sharing_service_a1', 'asset_traffic_source': 'content_owner_asset_traffic_source_a3', 'basic': 'content_owner_basic_a4', 'cards': 'content_owner_cards_a1', 'combined': 'content_owner_combined_a3', 'demographics': 'content_owner_demographics_a1', 'device_os': 'content_owner_device_os_a3', 'end_screens': 'content_owner_end_screens_a1', 'estimated_revenue': 'content_owner_estimated_revenue_a1', 'playback_location': 'content_owner_playback_location_a3', 'playlist_basic': 'content_owner_playlist_basic_a2', 'playlist_combined': 'content_owner_playlist_combined_a2', 'playlist_device_os': 'content_owner_playlist_device_os_a2', 'playlist_playback_location': 'content_owner_playlist_playback_location_a2', 'playlist_province': 'content_owner_playlist_province_a2', 'playlist_traffic_source': 'content_owner_playlist_traffic_source_a2', 'province': 'content_owner_province_a3', 'sharing_service': 'content_owner_sharing_service_a1', 'subtitles': 'content_owner_subtitles_a3', 'traffic_source': 'content_owner_traffic_source_a3', } # These reports are only copied to S3 and not load into staging tables reports_download_only = { 'sme': { 'active_references', 'asset_conflict', 'asset_end_screens', 'end_screens', 'playlist_basic', 'playlist_combined', 'playlist_device_os', 'playlist_playback_location', 'playlist_province', 'playlist_traffic_source', }, 'theorchard': { 'active_references', 'asset_conflict', 'asset_end_screens', 'end_screens', } }