TitleExtractor: Fall back to filename, or to URL slug as a last resort.