57 lines
1.9 KiB
YAML
57 lines
1.9 KiB
YAML
name: Xvideos
|
|
sceneByURL:
|
|
- action: scrapeXPath
|
|
url:
|
|
- xvideos.com
|
|
- xvideos2.com
|
|
#- xvideos.es
|
|
- xvideos.red
|
|
scraper: sceneScraper
|
|
|
|
sceneByFragment:
|
|
action: scrapeXPath
|
|
scraper: sceneScraper
|
|
queryURL: https://www.xvideos.com/video{filename}/x
|
|
queryURLReplace:
|
|
filename:
|
|
# expects an id in square brackets before extension, as saved by yt-dlp by default
|
|
- regex: '.*\[([0-9a-zA-Z]{4,})\]\.[^\.]+'
|
|
with: $1
|
|
# or expects an id
|
|
- regex: '^.*?(\d+)\..+$'
|
|
with: $1
|
|
# if no id is found in the filename
|
|
- regex: .*\.[^\.]+$
|
|
with: # clear the filename so that it doesn't leak
|
|
|
|
xPathScrapers:
|
|
sceneScraper:
|
|
scene:
|
|
Title: //h2[@class="page-title"]/text()[1]
|
|
Tags:
|
|
Name: //li/a[@class="is-keyword btn btn-default"]/text()
|
|
Performers:
|
|
Name: //li[@class="model"]/a/span[1]/text()
|
|
Studio:
|
|
Name: //li[@class="main-uploader"]/a[
|
|
starts-with(@href,'/channels') or
|
|
starts-with(@href,'/amateur-channels') or
|
|
starts-with(@href,'/model-channels') or
|
|
starts-with(@href,'/pornstar-channels')
|
|
]/span[@class="name"]/text()
|
|
Image:
|
|
selector: //script[contains(text(), "setThumbUrl169")]/text()|//div[@id="html5video"][span[@class="premium-log-overlay"]]/div[@class="embed-responsive-item"]/@style
|
|
postProcess:
|
|
- replace:
|
|
- regex: ^.+(?:setThumbUrl169|url)\('(.+?\.jpg).+$
|
|
with: $1
|
|
URL: //link[@rel="alternate" and @hreflang="x-default"]/@href
|
|
Date:
|
|
selector: //script[@type="application/ld+json"]/text()
|
|
postProcess:
|
|
- replace:
|
|
- regex: '[\S\s]+"uploadDate"\s*:\s*"(\d+-\d{2}-\d{2})[^"]+"[\S\s]+'
|
|
with: $1
|
|
- parseDate: 2006-01-02
|
|
# Last Updated February 15, 2023
|