{ "version": "1.0.0", "agent": "story-architect", "taskId": "T-mnwkukzg", "respect_robots_txt": true, "global_rate_limits": { "default_request_interval_sec": 2.5, "max_concurrent_requests_per_domain": 1, "max_retries": 3, "retry_backoff_sec": [2, 5, 10] }, "user_agents": [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" ], "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7", "Accept-Encoding": "gzip, deflate, br", "DNT": "1", "Connection": "keep-alive", "Upgrade-Insecure-Requests": "1" }, "sources": [ { "id": "bbc-writersroom", "name": "BBC Writersroom Script Library", "base_url": "https://www.bbc.co.uk/writersroom/scripts", "homepage": "https://www.bbc.co.uk/writersroom", "authority": "very_high", "category": "screenplay_archive", "rate_limits": { "request_interval_sec": 2.5, "max_requests_per_minute": 20 }, "crawl_rules": { "entry_points": [ "https://www.bbc.co.uk/writersroom/scripts" ], "allowed_patterns": [ "^https://www\\.bbc\\.co\\.uk/writersroom/scripts(?:/.*)?$", "^https://www\\.bbc\\.co\\.uk/writersroom/(?:tv|radio|film|childrens)/(?:.*)?$" ], "blocked_patterns": [ "\\?.*redirect=", "/search\\?", "/user/" ], "follow_links": true, "max_depth": 3, "file_types": ["pdf"], "file_patterns": [ "\\.pdf$" ] }, "parsing_rules": { "title": ["h1", ".script-title", "title"], "writer": [".script-writer", "[data-writer]", ".author"], "genre": [".script-genre", ".genre"], "summary": [".script-synopsis", ".synopsis", "meta[name='description']@content"], "script_url": ["a[href$='.pdf']@href"], "release_year": [".script-year", ".year"] }, "notes": "Official BBC resource. Static HTML with direct PDF links. No login required. Quarterly updates." }, { "id": "simplyscripts", "name": "SimplyScripts", "base_url": "https://simplyscripts.com", "homepage": "https://simplyscripts.com", "authority": "high", "category": "screenplay_archive", "rate_limits": { "request_interval_sec": 3.0, "max_requests_per_minute": 15 }, "crawl_rules": { "entry_points": [ "https://www.simplyscripts.com/wga_top_101_scripts.html", "https://simplyscripts.com/oscar-screenplays-96.html" ], "allowed_patterns": [ "^https://(www\\.)?simplyscripts\\.com/.*\\.(html|htm|pdf|txt)$", "^https://(www\\.)?simplyscripts\\.com/.+" ], "blocked_patterns": [ "\\?.*search=", "/cgi-bin/", "/ads/" ], "follow_links": true, "max_depth": 2, "file_types": ["pdf", "txt", "html"], "file_patterns": [ "\\.(pdf|txt|html?)$" ] }, "parsing_rules": { "title": ["title", "h1", "h2", "h3"], "writer": ["b:contains('Written by') + *", ".writer", "p:contains('Written by')"], "script_url": ["a[href$='.pdf']@href", "a[href$='.txt']@href"], "genre": ["p:contains('Genre')", ".genre"] }, "notes": "Long-running aggregator. Mix of PDF and plain-text. Annual batch crawl recommended during awards season." }, { "id": "studiobinder", "name": "StudioBinder Screenplay Database", "base_url": "https://www.studiobinder.com", "homepage": "https://www.studiobinder.com", "authority": "high", "category": "screenplay_archive_education", "rate_limits": { "request_interval_sec": 2.0, "max_requests_per_minute": 25 }, "crawl_rules": { "entry_points": [ "https://www.studiobinder.com/blog/best-free-movie-scripts-online/", "https://www.studiobinder.com/blog/save-the-cat-beat-sheet/" ], "allowed_patterns": [ "^https://www\\.studiobinder\\.com/blog/.+" ], "blocked_patterns": [ "/shop/", "/checkout/", "/account/", "\\?.*utm_" ], "follow_links": false, "max_depth": 1, "file_types": ["pdf"], "file_patterns": [ "\\.pdf$" ] }, "parsing_rules": { "title": ["h1.entry-title", "h1", "title"], "script_url": ["a[href$='.pdf']@href"], "movie_title": [".script-title", "h3", "h4"], "year": [".script-year"], "description": ["meta[name='description']@content", ".entry-content p"] }, "notes": "Curated lists with clean HTML. PDFs may be on CDN. Do not recurse deeply; article pages are the primary target." }, { "id": "tvtropes", "name": "TV Tropes Archetype Database", "base_url": "https://tvtropes.org", "homepage": "https://tvtropes.org", "authority": "medium_high", "category": "archetype_database", "rate_limits": { "request_interval_sec": 5.0, "max_requests_per_minute": 10, "daily_max_requests": 500 }, "crawl_rules": { "entry_points": [ "https://tvtropes.org/pmwiki/pmwiki.php/Main/ArchetypalCharacter", "https://tvtropes.org/pmwiki/pmwiki.php/Main/DeconstructedCharacterArchetype", "https://tvtropes.org/pmwiki/pmwiki.php/Main/TheHerosJourney", "https://tvtropes.org/pmwiki/pmwiki.php/Main/ThreeActStructure" ], "allowed_patterns": [ "^https://tvtropes\\.org/pmwiki/pmwiki\\.php/Main/.+$" ], "blocked_patterns": [ "/pmwiki/pmwiki.php/Trivia/", "/pmwiki/pmwiki.php/WMG/", "/pmwiki/pmwiki.php/YMMV/", "/pmwiki/pmwiki.php/Fridge/", "/forum/", "/reviews/" ], "follow_links": true, "max_depth": 2, "file_types": ["html"], "file_patterns": [ "\\.html?$" ] }, "parsing_rules": { "title": ["h1", "title"], "trope_description": [".trope-description", "#main-article p", ".article-content p"], "examples": [".folder-label", "ul li"], "related_tropes": ["a[href^='/pmwiki/pmwiki.php/Main/']@href"] }, "notes": "Heavy anti-bot protections. Use conservative rate limits. Focus on Main/ namespace pages only. Do not mirror the entire site." }, { "id": "reedsy-stc", "name": "Reedsy Save the Cat! Beat Sheet Guide", "base_url": "https://reedsy.com", "homepage": "https://reedsy.com", "authority": "very_high", "category": "story_structure_education", "rate_limits": { "request_interval_sec": 2.0, "max_requests_per_minute": 25 }, "crawl_rules": { "entry_points": [ "https://reedsy.com/blog/guide/story-structure/save-the-cat-beat-sheet/" ], "allowed_patterns": [ "^https://reedsy\\.com/blog/guide/story-structure/.+$" ], "blocked_patterns": [ "/marketplace/", "/login/", "/signup/", "\\?.*utm_" ], "follow_links": false, "max_depth": 1, "file_types": ["html"], "file_patterns": [] }, "parsing_rules": { "title": ["h1", "title"], "beat_name": ["h2", "h3"], "beat_description": ["h2 + p", "h3 + p", ".blog-post-content p"], "page_ranges": ["p:contains('page')", "td"] }, "notes": "Educational article with detailed STC explanations. Single-page target. No deep crawling needed." }, { "id": "finaldraft-beats", "name": "Final Draft Blog — Beat Sheet Essentials", "base_url": "https://www.finaldraft.com", "homepage": "https://www.finaldraft.com", "authority": "very_high", "category": "story_structure_education", "rate_limits": { "request_interval_sec": 2.5, "max_requests_per_minute": 20 }, "crawl_rules": { "entry_points": [ "https://www.finaldraft.com/blog/what-is-a-beat-sheet-an-essential-screenwriting-tool-explained" ], "allowed_patterns": [ "^https://www\\.finaldraft\\.com/blog/.+$" ], "blocked_patterns": [ "/store/", "/cart/", "/account/", "\\?.*utm_" ], "follow_links": false, "max_depth": 1, "file_types": ["html"], "file_patterns": [] }, "parsing_rules": { "title": ["h1", "title"], "section_heading": ["h2", "h3"], "content": [".blog-content p", "article p"] }, "notes": "Industry-standard software vendor. Single high-value article target." }, { "id": "chinese-short-drama-news", "name": "Chinese Short Drama Craft News Aggregator", "base_url": "https://news.qq.com", "homepage": "https://news.qq.com", "authority": "medium", "category": "short_drama_craft", "rate_limits": { "request_interval_sec": 2.0, "max_requests_per_minute": 25 }, "crawl_rules": { "entry_points": [ "https://news.qq.com/rain/a/20250815A06YPK00", "https://www.thepaper.cn/newsDetail_forward_31407239", "https://kandian.sina.com.cn/article_3840084769_e4e30b2101902lc1q.html" ], "allowed_patterns": [ "^https://news\\.qq\\.com/.+$", "^https://www\\.thepaper\\.cn/.+$", "^https://kandian\\.sina\\.com\\.cn/.+$" ], "blocked_patterns": [ "/video/", "/live/", "\\?.*ad=", "\\?.*utm_" ], "follow_links": false, "max_depth": 1, "file_types": ["html"], "file_patterns": [] }, "parsing_rules": { "title": ["h1", "title"], "author": [".author", ".article-author", ".post_author"], "publish_time": ["time", ".publish-time", ".post_time"], "content": [".content-article p", "#content p", ".article-content p"], "tags": [".tag", ".keywords"] }, "notes": "Practitioner interviews and hook/reversal formulas for Douyin/Kuaishou. Article pages only; no recursion." }, { "id": "chinese-structure-guides", "name": "Chinese Story Structure Guides (Sohu / Douban / WeChat)", "base_url": "https://www.sohu.com", "homepage": "https://www.sohu.com", "authority": "medium", "category": "story_structure_education", "rate_limits": { "request_interval_sec": 2.0, "max_requests_per_minute": 25 }, "crawl_rules": { "entry_points": [ "https://www.sohu.com/a/282558444_285386", "https://m.douban.com/book/review/13511605/", "https://m.douban.com/book/review/13382062/", "https://www.douban.com/group/topic/160393993/" ], "allowed_patterns": [ "^https://www\\.sohu\\.com/a/.+$", "^https://m\\.douban\\.com/.+$", "^https://www\\.douban\\.com/.+$" ], "blocked_patterns": [ "/search?", "/login", "/register" ], "follow_links": false, "max_depth": 1, "file_types": ["html"], "file_patterns": [] }, "parsing_rules": { "title": ["h1", "title"], "content": ["article p", ".rich-content p", ".topic-content p"], "author": [".author-name", ".user-info"] }, "notes": "Fan translations and practitioner summaries of Save the Cat! and Three-Act Structure in Chinese. WeChat pages may require handling MP redirect query strings." } ] }