gitextract_gvsn9m4r/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── get-matrix.mjs │ ├── main.yml │ └── pull_request.yml ├── .gitignore ├── .nojekyll ├── .npmrc ├── CHANGELOG.md ├── CNAME ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── benchmark/ │ ├── README.md │ ├── accuracy-readability-vs-defuddle.js │ ├── index.js │ ├── package.json │ ├── results/ │ │ ├── html-metadata.json │ │ ├── metascraper.json │ │ ├── node-metainspector.json │ │ ├── open-graph-scraper.json │ │ └── unfluff.json │ ├── scrapers.js │ └── urls.js ├── gulpfile.js ├── index.html ├── lerna.json ├── package.json ├── packages/ │ ├── cheerio-repl/ │ │ ├── bin/ │ │ │ └── index.mjs │ │ └── package.json │ ├── metascraper/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── benchmark/ │ │ │ └── merge-rules.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── get-data.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── rules.js │ │ └── test/ │ │ ├── integration/ │ │ │ ├── acast/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── anandtech/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── arstechnica/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── astier/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── atlasobscura/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ ├── index.js.md.3629819930 │ │ │ │ ├── index.js.snap │ │ │ │ └── index.js.snap.2409065053 │ │ │ ├── audiense/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── bbc/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ ├── index.js.md.1566904539 │ │ │ │ ├── index.js.snap │ │ │ │ └── index.js.snap.366348725 │ │ │ ├── belfusto/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── bfi/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── blogger/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── bloomberg/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── bukvy/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── business-today/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── cio/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── cnet/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── computerworld/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── crn/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── economic-times/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── engadget/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── entrepreneur/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── eweek/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── fast-company/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── financial-times/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── forbes/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── fortune/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── github/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── globenewswire/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── googleblog/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── hola/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── inc/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── indiehackers/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── information-week/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── instagram/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── itpro/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── jewish-business-news/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── lean-data/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── learnnode/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── linkedin-company/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── linkedin-pulse/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── los-angeles-times/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── mac-rumors/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── marketing-land/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── mashable/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── medium/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── milanocittastato/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── nbcnews/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── npr/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── nytimes/ │ │ │ │ ├── index.js │ │ │ │ ├── input/ │ │ │ │ │ ├── article.html │ │ │ │ │ └── opinion.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── pikabu/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── postplanner/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── pr-newswire/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── qz/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── reactpodcast/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── recode/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── reuters/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── san-francisco-chronicle/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── segment/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── segment-academy/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── sfstandard/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── silicon-angle/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── silicon-beat/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── silicon-valley-business-journal/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── smitten-kitchen/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── softwarefordays/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── startup-grind/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── stuff/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── substack/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── techcrunch/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── techmonitor/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── teslahunt/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── the-boston-globe/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── the-guardian/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── the-register/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── the-verge/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── theflip/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── therams/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── transistor/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── twitter-gif/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── twitter-image/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── usa-today/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── venture-beat/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── vice/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── vimeo/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── wikipedia/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── wired/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── wnycstudios/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── wsj/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── yahoo-news/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ ├── yandex/ │ │ │ │ ├── index.js │ │ │ │ ├── input.html │ │ │ │ └── snapshots/ │ │ │ │ ├── index.js.md │ │ │ │ └── index.js.snap │ │ │ └── zdnet/ │ │ │ ├── index.js │ │ │ ├── input.html │ │ │ └── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ ├── types/ │ │ │ └── index.test-d.ts │ │ └── unit/ │ │ ├── decode/ │ │ │ ├── index.js │ │ │ └── input.html │ │ ├── index.js │ │ ├── interface.js │ │ └── merge-rules.js │ ├── metascraper-amazon/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── amazon-co-uk/ │ │ │ │ └── product-url.html │ │ │ ├── amazon-com/ │ │ │ │ ├── ansi-url.html │ │ │ │ └── product-url.html │ │ │ └── amazon-es/ │ │ │ └── product-url.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-audio/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ └── providers/ │ │ │ ├── deezer.com.html │ │ │ ├── ivoox.com.html │ │ │ ├── music.apple.com.html │ │ │ ├── open.spotify.com.html │ │ │ ├── podcasts.apple.com.html │ │ │ ├── podcasts.google.com.html │ │ │ ├── tidal.com.html │ │ │ └── transistor.fm.html │ │ ├── helpers.js │ │ ├── iframe.js │ │ ├── index.js │ │ ├── providers.js │ │ └── snapshots/ │ │ ├── index.js.md │ │ └── index.js.snap │ ├── metascraper-author/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-bluesky/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── post-image.html │ │ │ ├── post-link.html │ │ │ ├── post.html │ │ │ └── profile.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-date/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-defuddle/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ └── article.html │ │ └── index.js │ ├── metascraper-description/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ └── index.js │ ├── metascraper-dribbble/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── post.html │ │ │ └── profile.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-feed/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ └── index.js │ ├── metascraper-helpers/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.js │ │ │ └── load-iframe/ │ │ │ ├── index.js │ │ │ └── worker.js │ │ └── test/ │ │ ├── has.js │ │ ├── index.js │ │ ├── is-url/ │ │ │ ├── absolute.js │ │ │ └── relative.js │ │ ├── jsonld.js │ │ ├── load-iframe.js │ │ ├── memoize-one.js │ │ ├── snapshots/ │ │ │ ├── jsonld.js.md │ │ │ ├── jsonld.js.snap │ │ │ ├── load-iframe.js.md │ │ │ └── load-iframe.js.snap │ │ └── titleize.js │ ├── metascraper-iframe/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── from-html.js │ │ │ ├── from-provider.js │ │ │ ├── from-twitter.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── genially.html │ │ │ ├── indiehacker-with-dimensions.html │ │ │ ├── indiehacker.html │ │ │ └── youtube.html │ │ ├── get-oembed-url.js │ │ ├── helpers.js │ │ ├── index.js │ │ └── test.js │ ├── metascraper-image/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-instagram/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── post-with-clip.html │ │ │ ├── post-with-igtv.html │ │ │ ├── post-with-multi-photo.html │ │ │ ├── post-with-photo.html │ │ │ ├── post-with-video.html │ │ │ ├── profile.html │ │ │ └── story.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-lang/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ └── html-lang.html │ │ ├── index.js │ │ └── snapshots/ │ │ ├── index.js.md │ │ └── index.js.snap │ ├── metascraper-logo/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-logo-favicon/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── favicon.js │ │ ├── fixtures/ │ │ │ ├── liuedu.html │ │ │ └── theverge.html │ │ ├── get-logo.js │ │ ├── google.js │ │ ├── helpers.js │ │ ├── index.js │ │ ├── pick-fn.js │ │ ├── resolve-favicon-url.js │ │ └── root-favicon.js │ ├── metascraper-manifest/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── get-size.js │ │ ├── index.js │ │ └── snapshots/ │ │ ├── index.js.md │ │ └── index.js.snap │ ├── metascraper-media-provider/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── bench/ │ │ │ ├── constants.js │ │ │ └── index.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── get-media.js │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── audio.js │ │ ├── fixtures/ │ │ │ ├── generate.js │ │ │ └── provider/ │ │ │ ├── acast.json │ │ │ ├── castbox.json │ │ │ ├── google.json │ │ │ ├── podcastaddict.json │ │ │ ├── stitcher.json │ │ │ ├── substack.json │ │ │ ├── twitter.json │ │ │ ├── vimeo-m3u8.json │ │ │ ├── vimeo.json │ │ │ ├── youtube-video-audio.json │ │ │ └── youtube.json │ │ ├── get-audio.js │ │ ├── get-format-urls.js │ │ ├── get-image.js │ │ ├── get-media.js │ │ ├── get-video.js │ │ ├── helpers.js │ │ ├── snapshots/ │ │ │ ├── get-audio.js.md │ │ │ ├── get-audio.js.snap │ │ │ ├── get-video.js.md │ │ │ └── get-video.js.snap │ │ └── video/ │ │ ├── format.js │ │ ├── index.js │ │ └── unsupported.js │ ├── metascraper-publisher/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ └── get-from-title.js │ ├── metascraper-readability/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── benchmark/ │ │ │ ├── document-write.js │ │ │ ├── fixture.html │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── chowhanandsons.com.html │ │ │ ├── kikobeats.com.html │ │ │ ├── learnnode.com.html │ │ │ ├── malformed.html │ │ │ └── microlink.io.html │ │ ├── index.js │ │ └── snapshots/ │ │ ├── index.js.md │ │ └── index.js.snap │ ├── metascraper-reddit/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ └── post.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-soundcloud/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ └── song.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-spotify/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── description.js │ │ ├── fixtures/ │ │ │ ├── album.html │ │ │ ├── artist.html │ │ │ ├── episode.html │ │ │ ├── show.html │ │ │ └── track.html │ │ ├── helpers.js │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-telegram/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── channel.html │ │ │ ├── no-iframe.html │ │ │ ├── post-full-image.html │ │ │ ├── post-link-image.html │ │ │ └── post-right-preview.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-tiktok/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── Untitled │ │ ├── fixtures/ │ │ │ ├── profile.html │ │ │ └── video.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-title/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-uol/ │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── entretenimento.html │ │ │ ├── folha.html │ │ │ └── torcedores.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ ├── metascraper-url/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ └── src/ │ │ ├── index.d.ts │ │ └── index.js │ ├── metascraper-video/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── providers/ │ │ │ │ ├── 9gag.com.html │ │ │ │ ├── bluecadet.com.html │ │ │ │ ├── clip.twitch.tv.html │ │ │ │ ├── giphy.com.html │ │ │ │ └── medal.tv.html │ │ │ ├── source-src.html │ │ │ ├── tweet.html │ │ │ └── video-src.html │ │ ├── helpers.js │ │ ├── iframe.js │ │ ├── index.js │ │ ├── providers.js │ │ └── snapshots/ │ │ ├── index.js.md │ │ ├── index.js.snap │ │ ├── providers.js.md │ │ └── providers.js.snap │ ├── metascraper-x/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── test/ │ │ ├── fixtures/ │ │ │ ├── post-gif-og.html │ │ │ ├── post-gif.html │ │ │ ├── post-image-og.html │ │ │ ├── post-image.html │ │ │ ├── post-link.html │ │ │ ├── post-og.html │ │ │ ├── post-on-x.html │ │ │ ├── post-video-og.html │ │ │ ├── post-video.html │ │ │ ├── post.html │ │ │ ├── profile-og.html │ │ │ ├── profile-video-og.html │ │ │ ├── profile-video.html │ │ │ └── profile.html │ │ ├── index.js │ │ ├── snapshots/ │ │ │ ├── index.js.md │ │ │ └── index.js.snap │ │ └── test.js │ └── metascraper-youtube/ │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ ├── index.d.ts │ │ └── index.js │ └── test/ │ ├── fixtures/ │ │ ├── image-size.html │ │ ├── youtube-channel.html │ │ ├── youtube-list.html │ │ ├── youtube-title.html │ │ ├── youtube-video-old.html │ │ └── youtube-video.html │ ├── helpers.js │ ├── index.js │ ├── snapshots/ │ │ ├── index.js.md │ │ └── index.js.snap │ └── test.js ├── pnpm-workspace.yaml └── src/ ├── css/ │ └── style.css ├── design/ │ └── metascraper-logo.sketch └── js/ └── main.js