# Scrapy settings for repub project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more settings consulting the documentation: # # https://docs.scrapy.org/en/latest/topics/settings.html # https://docs.scrapy.org/en/latest/topics/downloader-middleware.html # https://docs.scrapy.org/en/latest/topics/spider-middleware.html BOT_NAME = "repub" SPIDER_MODULES = ["repub.spiders"] NEWSPIDER_MODULE = "repub.spiders" # Crawl responsibly by identifying yourself (and your website) on the user-agent USER_AGENT = "GuardianProject-Republisher-Redux (+https://guardianproject.info)" # Obey robots.txt rules ROBOTSTXT_OBEY = False # Configure maximum concurrent requests performed by Scrapy (default: 16) # CONCURRENT_REQUESTS = 32 # Configure a delay for requests for the same website (default: 0) # See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs # DOWNLOAD_DELAY = 3 # The download delay setting will honor only one of: # CONCURRENT_REQUESTS_PER_DOMAIN = 16 # CONCURRENT_REQUESTS_PER_IP = 16 # Disable cookies (enabled by default) # COOKIES_ENABLED = False # Disable Telnet Console (enabled by default) # TELNETCONSOLE_ENABLED = False # Override the default request headers: # DEFAULT_REQUEST_HEADERS = { # "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", # "Accept-Language": "en", # } # Enable or disable spider middlewares # See https://docs.scrapy.org/en/latest/topics/spider-middleware.html # SPIDER_MIDDLEWARES = { # "repub.middlewares.RepubSpiderMiddleware": 543, # } # Enable or disable downloader middlewares # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html # DOWNLOADER_MIDDLEWARES = { # "repub.middlewares.RepubDownloaderMiddleware": 543, # } # Enable or disable extensions # See https://docs.scrapy.org/en/latest/topics/extensions.html # EXTENSIONS = { # "scrapy.extensions.telnet.TelnetConsole": None, # } # Configure item pipelines # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html # ITEM_PIPELINES = {} # Enable and configure the AutoThrottle extension (disabled by default) # See https://docs.scrapy.org/en/latest/topics/autothrottle.html # AUTOTHROTTLE_ENABLED = True # The initial download delay # AUTOTHROTTLE_START_DELAY = 5 # The maximum download delay to be set in case of high latencies # AUTOTHROTTLE_MAX_DELAY = 60 # The average number of requests Scrapy should be sending in parallel to # each remote server # AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 # Enable showing throttling stats for every response received: # AUTOTHROTTLE_DEBUG = False # Enable and configure HTTP caching (disabled by default) # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings HTTPCACHE_ENABLED = True HTTPCACHE_EXPIRATION_SECS = 0 HTTPCACHE_DIR = "httpcache" HTTPCACHE_IGNORE_HTTP_CODES = [] HTTPCACHE_STORAGE = "scrapy.extensions.httpcache.FilesystemCacheStorage" # Set settings whose default value is deprecated to a future-proof value REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7" TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor" FEED_EXPORT_ENCODING = "utf-8" FEED_EXPORTERS = { "rss": "repub.exporters.RssExporter", } TELNETCONSOLE_ENABLED = False LOG_LEVEL = "INFO" # LOG_LEVEL = "ERROR" MEDIA_ALLOW_REDIRECTS = True REPUBLISHER_AUDIO = [ { "name": "mp3_vbr7_voice", "format": "mp3", "max_bitrate": 64000, "mimetype": "audio/mpeg", "extension": "mp3", "ffmpeg_audio_params": { "acodec": "libmp3lame", "qscale:a": "7", "ac": "1", "ar": "48000", }, }, { "name": "m4a_aac_vbr2_voice", "format": "m4a", "max_bitrate": 64000, "mimetype": "audio/mp4", "extension": "m4a", "ffmpeg_audio_params": { "acodec": "libfdk_aac", "vbr": "2", "ac": "1", "ar": "48000", }, }, { "name": "webm_opus_voice_48k", "format": "webm", "max_bitrate": 48000, "mimetype": "audio/webm", "extension": "webm", "ffmpeg_audio_params": { "acodec": "libopus", "b:a": "48k", "ac": "1", "ar": "48000", "application": "voip", }, }, ] REPUBLISHER_VIDEO = [ # broadly compatible { "name": "main", "container": "mp4", "vcodec": "h264", "acodec": "aac", "audio_max_bitrate": 96000, "ffmpeg_audio_params": { "acodec": "aac", "b:a": "96k", "ac": "2", "ar": "48000", }, "ffmpeg_video_params": { "vcodec": "libx264", "pix_fmt": "yuv420p", "profile:v": "main", "level": "4.0", "preset": "medium", "crf": "22", "movflags": "+faststart", }, "max_height": 720, "mimetype": "video/mp4", "extension": "mp4", }, # linux fallback without patent encumberance { "name": "fallback", "container": "webm", "vcodec": "vp9", "acodec": "opus", "audio_max_bitrate": 96000, "ffmpeg_audio_params": { "acodec": "libopus", "b:a": "96k", "ac": "2", "ar": "48000", }, "ffmpeg_video_params": { "vcodec": "libvpx-vp9", "crf": "33", "b:v": "0", }, "max_height": 720, "mimetype": "video/webm", "extension": "webm", }, ] REPUBLISHER_FFMPEG_ENCODERS = ["libmp3lame", "libfdk_aac", "libvpx-vp9", "libopus"] REPUBLISHER_FFMPEG_CODECS = ["aac", "mp3", "mpeg4", "vp9", "opus"] # CLOSESPIDER_ERRORCOUNT = 1