Giter Club home page Giter Club logo

javinizer's Introduction

Javinizer (JAV Organizer)

A commandline and GUI based PowerShell module used to scrape metadata and sort your local Japanese Adult Video (JAV) files into a media library compatible format.


GitHub PSGallery Docker Discord Commits

FeaturesGetting StartedExamplesDocumentation

View GUI demo video (NSFW)

Features

  • Highly customizable. An assortment of scrapers are available for you to mix-and-match metadata with. Scrapers sources include sites such as Javlibrary, R18, Dmm (Fanza), JavBus, Jav321, AVEntertainment, MGStage, and DLGetchu. Various .csv settings files are also provided to customize your metadata even further.

  • Flexible file detection. Multiple methods are provided to detect your local JAV files such as the built-in file matcher as well as a customizable regex string.

  • Multi-language support. Scraper sources provide English, Japanese, and occasionally Chinese language support. Machine translation modules are also available to translate individual metadata fields of your choice.

  • You own the data. Metadata .nfo files are created for each JAV file to be read by a media library application. Contrary to a media library metadata plugin, if an online scraper suddenly disappears, you still keep your metadata.

Getting Started

View the full Javinizer installation and usage documentation on GitBook.

Prerequisites

To run Javinizer, you will need to install following:

NOTE: You will need to add Python and MediaInfo to your system PATH. Windows calls python, while Unix/MacOS calls python3.

# Install the python modules using pip. If running Unix/MacOS, use pip3/python3
> pip install pillow
> pip install googletrans==4.0.0rc1
> pip install google_trans_new

Installation

After installing the required prerequisites, run the following command in an administrator PowerShell 7 (pwsh.exe) console to install the Javinizer module. If this is your first time using PowerShell, you may run into some prompts about security policies. Follow the instructions given in the prompts to unrestrict the code.

# Install the module from PowerShell gallery
> Install-Module Javinizer

# Check that the module has been installed; if error, restart your console
> Javinizer -v

Quick start (CLI)

Here are some common commands that you can run with Javinizer:

# Run a command to sort your JAV files using default settings
> Javinizer -Path "C:\JAV\Unsorted" -DestinationPath "C:\JAV\Sorted"

# Run a command to sort your JAV files while searching folders recursively (within the folders)
> Javinizer -Path "C:\JAV\Unsorted" -DestinationPath "C:\JAV\Sorted" -Recurse

# Run a command to sort a JAV file using direct URLs
> Javinizer -Path "C:\JAV\Unsorted\IPX-535.mp4" -Url 'https://www.javlibrary.com/en/?v=javmeza7s4', 'https://www.r18.com/videos/vod/movies/detail/-/id=ipx00535/'

# Run a command to find metadata
> Javinizer -Find "ABP-420" -Javlibrary

# Run a command to find metadata and aggregate it according to your settings file
> Javinizer -Find "ABP-420" -Javlibrary -R18Dev -DmmJa -Aggregated

# Run a command to find metadata, aggregate it according to your settings file, and output the nfo
> Javinizer -Find "ABP-420" -Javlibrary -R18Dev -DmmJa -Aggregated -Nfo

# Open the Javinizer settings configuration
> Javinizer -OpenSettings

# Update your Javinizer module
> Javinizer -UpdateModule

# View the Javinizer commandline help (may not be up to date)
> Javinizer -Help

Quick start (GUI)

Windows

# Install PowerShell Universal to Javinizer module folder (Run as administrator)
> Javinizer -InstallGUI

# Runs the PowerShell Universal application and opens the Javinizer GUI dashboard page
# Optionally specify a custom port using the -Port parameter
> Javinizer -OpenGUI

After running Javinizer -OpenGUI, the PowerShell Universal process should run in a separate window and open your browser to 'http://localhost:[PORT]/' which contains the Javinizer dashboard.

Docker

# To run GUI
docker run --name javinizer -p 8600:8600 -d javinizer/javinizer:latest

# To run CLI
docker run --name javinizer -p 8600:8600 -d javinizer/javinizer:latest-cli

# Optional
# You will need to copy the jvSettings.json configuration from [here](./src/Javinizer/jvSettings.json) and write it to your path/to/jvSettings.json location
-v path/to/jvSettings.json:/home/jvSettings.json

Example Output

A few examples of Javinizer's sort output are listed below.

Basic Folder Structures

"sort.format.folder": "<ID> [<STUDIO>] - <TITLE> (<YEAR>)",
"sort.format.outputfolder": []
├─IDBD-979 [Idea Pocket] - Yume Nishinomiya Ultimate Blowjob... (2020)
│      fanart.jpg
│      folder.jpg
│      IDBD-979.mp4
│      IDBD-979.nfo
│
├─IPX-399 [Idea Pocket] - Shes Luring You To Temptation... (2019)
│      fanart.jpg
│      folder.jpg
│      IPX-399.mp4
│      IPX-399.nfo
│
├─IPX-485 [Idea Pocket] - A Big Tits Wife Who Got Fucked... (2020)
│      fanart.jpg
│      folder.jpg
│      IPX-485.mp4
│      IPX-485.nfo

Advanced Folder Structures

"sort.format.folder": "<ID> [<STUDIO>] - <TITLE>",
"sort.format.outputfolder": ["<ACTORS>", "<YEAR>"]
├─Nishimiya Yume
│  └─2020
│      └─IDBD-979 [Idea Pocket] - Yume Nishinomiya Ultimate Blowjob...
│          │  fanart.jpg
│          │  folder.jpg
│          │  IDBD-979-trailer.mp4
│          │  IDBD-979.mp4
│          │  IDBD-979.nfo
│          │
│          ├─.actors
│          │      Nishimiya_Yume.jpg
│          │
│          └─extrafanart
│                  fanart1.jpg
│                  fanart2.jpg
│                  fanart3.jpg
│
└─Sakura Momo
    ├─2019
    │  └─IPX-399 [Idea Pocket] - Shes Luring You To Temptation...
    │      │  fanart.jpg
    │      │  folder.jpg
    │      │  IPX-399-trailer.mp4
    │      │  IPX-399.mp4
    │      │  IPX-399.nfo
    │      │
    │      ├─.actors
    │      │      Sakura_Momo.jpg
    │      │
    │      └─extrafanart
    │              fanart1.jpg
    │              fanart2.jpg
    │              fanart3.jpg
    │
    └─2020
        └─IPX-485 [Idea Pocket] - A Big Tits Wife Who Got Fucked...
            │  fanart.jpg
            │  folder.jpg
            │  IPX-485-trailer.mp4
            │  IPX-485.mp4
            │  IPX-485.nfo
            │
            ├─.actors
            │      Sakura_Momo.jpg
            │
            └─extrafanart
                    fanart1.jpg
                    fanart2.jpg
                    fanart3.jpg

Metadata Output .nfo

A .nfo metadata file is created for each movie.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movie>
    <title>[IDBD-979] Yume Nishinomiya Ultimate Blowjoc Complete BEST - Lots of Cum, 40 Shots!</title>
    <originaltitle>西宮ゆめ 至高のフェラチオコンプリートBEST 大量射精40発!</originaltitle>
    <id>IDBD-979</id>
    <premiered>2020-09-12</premiered>
    <year>2020</year>
    <director></director>
    <studio>Idea Pocket</studio>
    <rating></rating>
    <votes></votes>
    <plot>デビュー4周年を迎えたアイポケの小悪魔美少女’’西宮ゆめ’’のフェラチオシーンのみを集めたベストが登場!</plot>
    <runtime>237</runtime>
    <trailer>https://awscc3001.r18.com/litevideo/freepv/i/idb/idbd00979/idbd00979_dmb_w.mp4</trailer>
    <mpaa>XXX</mpaa>
    <tagline></tagline>
    <set></set>
    <genre>Beautiful Girl</genre>
    <genre>Blowjob</genre>
    <genre>Facial</genre>
    <genre>Deep Throat</genre>
    <genre>Digital Mosaic</genre>
    <genre>Actress Best Compilation</genre>
    <actor>
        <name>Nishimiya Yume</name>
        <altname>西宮ゆめ</altname>
        <thumb>https://pics.r18.com/mono/actjpgs/nisimiya_yume.jpg</thumb>
        <role>Actress</role>
    </actor>
</movie>

javinizer's People

Contributors

andor233 avatar jvlflame avatar mattepainting avatar seeyabye avatar toastyice avatar zuko7177 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

javinizer's Issues

Add setting to omit nfo file creation

Add setting to scrape/rename file but not create an nfo file.
This is useful if you use a flat file structure with file naming and don't need an external metadata file.

My use case: VR videos which won't be usable through Plex/Emby/Jellyfin.

Bug: Write-Error ... Invoke-Parallel.ps1:539

Using 2.0alpha5. Scraping APKH-140 yields following error

image

The movie is still moved to the "sorted" folder, but nfo file is empty. All other files (fanart, poster, etc) are created OK.

When we hit an error or missing "sort.metadata.requiredfield" field, should Javinizer just leave the movie file in the "unsorted" folder rather than still move it out?

Actor/genre lists have maximum of 4 objects

On each of the the three default sources ( javlibrary, dmm, javlibrary) there seems to be a limit on the number of actors/genres that can display. After 4 objects there is an appended '…' and no further displayed objects. If intended behavior, perhaps this behavior couldbe toggle-able via the settings.ini? If this will not be fixed, could a suggestion be made for where in the code to fix this locally?

Example command and output below
Javinizer -Find XRW-806

Source : javlibrary
....
Actress : {Hiiragi Mai, Yukino Akari, Harukawa Mari, KamiSaki Miyu…}
Genre : {Transsexual, Futanari, 4HR+, Incest…}

Javinizer 1.7.3

Don't truncate genres and etc in -Find?

When using -Find command, I would like to see all the information in the output with nothing is being truncated to ..., especially for Genres and ScreenshotUrl.

I tried -Verbose switch it did not do anything.

How to achieve this?

uncensored required metadata failure

When using a custom ini (attached) for uncensored sorting, it is failing to identify the returned metadata. it looks like a successful query to javbus, but the ending shows maybe some of it was parsed incorrectly? see verbose output below:

PS C:\Users\User> Javinizer -Path d:\asian\sort3 -ImportSettings C:\Users\User\Documents\PowerShell\Modules\Javinizer\1.6.0\uncensored.ini -strict DEBUG: [2020-06-14T14:10:46][Javinizer] R18: [False]; R18Zh: [False] Dmm: [False]; Javlibrary: [False]; JavlibraryZh: [False]; JavlibraryJa: [False]; Javbus: [True]; JavbusJa: [False]; Jav321: [False]
DEBUG: [2020-06-14T14:10:46][Javinizer] Attempting to read file(s) from path: [D:\asian\sort3]
DEBUG: [2020-06-14T14:10:46][Convert-JavTitle] Function started
DEBUG: [2020-06-14T14:10:46][Get-VideoFile] Function started
DEBUG: [2020-06-14T14:10:46][Convert-CommaDelimitedString] Begin string: [-trailer.,-5.], End string [-trailer. -5.]
DEBUG: [2020-06-14T14:10:46][Convert-CommaDelimitedString] Begin string: [asf,avi,flv,m4v,mkv,mp4,mov,rmvb], End string [asf avi flv m4v mkv mp4 mov rmvb]
DEBUG: [2020-06-14T14:10:46][Get-VideoFile] Function ended
DEBUG: [2020-06-14T14:10:46][Convert-JavTitle] Match 11
DEBUG: [2020-06-14T14:10:46][Convert-JavTitle] Function ended
DEBUG: [2020-06-14T14:10:46][Javinizer] Detected path: [D:\asian\sort3] as directory and destinationpath: [D:\asian\sort3] as directory
[2020-06-14T14:10:46][Javinizer] Sort path: [D:\asian\sort3]
[2020-06-14T14:10:46][Javinizer] Destination path: [D:\asian\sort3]
[2020-06-14T14:10:46][Javinizer] Included file ext: [asf,avi,flv,m4v,mkv,mp4,mov,rmvb]
[2020-06-14T14:10:46][Javinizer] Excluded file strings: [-trailer.,-5.]
[2020-06-14T14:10:46][Javinizer] (1 of 1) Sorting [HEYZO-2189.mp4]
DEBUG: [2020-06-14T14:10:46][Get-AggregatedDataObject] Function started
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [actress]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [actressthumburl]; Priority setting: [r18]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [alternatetitle]; Priority setting: [dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [coverurl]; Priority setting: [r18 dmm javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [description]; Priority setting: [dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [director]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [genre]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [id]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [label]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [runtime]; Priority setting: [r18 javlibrary dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [maker]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [rating]; Priority setting: [dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [ratingcount]; Priority setting: [dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [releasedate]; Priority setting: [r18 javlibrary dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [releaseyear]; Priority setting: [r18 javlibrary dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [series]; Priority setting: [r18]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [screenshoturl]; Priority setting: [r18 dmm]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [title]; Priority setting: [r18 javlibrary]
DEBUG: [2020-06-14T14:10:46][Get-MetadataPriority] Priority type loaded: [trailerurl]; Priority setting: [r18]
DEBUG: [2020-06-14T14:10:46][Get-AggregatedDataObject] Type: [FileDetails]
DEBUG: [2020-06-14T14:10:46][Get-JavbusDataObject] Function started
DEBUG: [2020-06-14T14:10:46][Get-JavbusUrl] Function started
DEBUG: [2020-06-14T14:10:46][Get-JavbusUrl] Performing [GET] on Uri [https://www.javbus.com/search/HEYZO-2189&type=0&parent=uc]
DEBUG: [2020-06-14T14:10:46][Get-JavbusUrl] Searching [1] of [1] results for [HEYZO-2189]
DEBUG: [2020-06-14T14:10:46][Get-JavbusUrl] Performing [GET] on Uri [https://www.javbus.com/HEYZO-2189]
DEBUG: [2020-06-14T14:10:46][Get-JavbusDataObject] Performing [GET] on Uri [https://www.javbus.com/en/HEYZO-2189]
DEBUG: [2020-06-14T14:10:46][Get-JavbusDataObject] JavBus data object:
DEBUG:
Source : javbus
Url : https://www.javbus.com/en/HEYZO-2189
Id : HEYZO-2189
Title : Sex Heaven -Tall Girl With Hot Legs Gets Multiple Orgasm-
Date : 2020-02-08
Year : 2020
Runtime : 64
Director :
Maker : HEYZO
Label :
Series : Sex Heaven
Rating :
Actress : 日向るな
ActressThumbUrl : https://images.javbus.com/actress/nowprinting.gif
Genre : {ギャル, shaved, AV女優, Creampie…}
CoverUrl : https://images.javbus.com/cover/18xd_b.jpg
ScreenshotUrl : {https://images.javbus.com/bigsample/18xd_b_1.jpg, https://images.javbus.com/bigsample/18xd_b_2.jpg, https://images.javbus.com/bigsample/18xd_b_3.jpg, https://images.javbus.com/bigsample/18xd_b_4.jpg…}

DEBUG: [2020-06-14T14:10:46][Get-JavbusDataObject] Function ended
DEBUG: [2020-06-14T14:10:46][Convert-CommaDelimitedString] Begin string: [Featured Actress,Hi-Def], End string [Featured Actress Hi-Def]
DEBUG: [2020-06-14T14:10:46][Get-AggregatedDataObject] Ignored genres: [Featured Actress Hi-Def]
DEBUG: [2020-06-14T14:10:46][Convert-CommaDelimitedString] Begin string: [Featured Actress,Hi-Def], End string [Featured Actress Hi-Def]
DEBUG: [2020-06-14T14:10:46][Get-AggregatedDataObject] Ignored genres: [Featured Actress Hi-Def]
DEBUG: [2020-06-14T14:10:46][Get-NewFileDirName] Function started
DEBUG: [2020-06-14T14:10:46][Get-NewFileDirName] Function ended
DEBUG:
Search : HEYZO-2189
Id :
Title :
AlternateTitle :
Description :
ReleaseDate :
ReleaseYear :
Runtime :
Director :
Maker :
Label :
Series :
Rating :
RatingCount :
Actress : {}
Genre :
ActressThumbUrl :
CoverUrl :
ScreenshotUrl :
TrailerUrl :
DisplayName : []
FolderName :
ScreenshotFolderName : extrafanart
ScreenshotImgName : fanart
ActorImgFolderName : .actors
FileName :
PosterName : folder
ThumbnailName : fanart
TrailerName : -trailer
NfoName :
OriginalFileName : HEYZO-2189.mp4
OriginalBaseName : HEYZO-2189
OriginalDirectory : D:\asian\sort3
OriginalFullName : D:\asian\sort3\HEYZO-2189.mp4
PartNumber :

DEBUG: [2020-06-14T14:10:46][Get-AggregatedDataObject] Function ended
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Function started
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Crop path: [C:\Users\User\Documents\PowerShell\Modules\Javinizer\1.6.0\crop.py]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Folder path: [D:\asian\sort3]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Nfo path: [D:\asian\sort3.nfo]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Cover path: [D:\asian\sort3\fanart.jpg]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Poster path: [D:\asian\sort3\folder.jpg]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Screenshot path: [D:\asian\sort3\extrafanart]
DEBUG: [2020-06-14T14:10:46][Set-JavMovie] Trailer path: [D:\asian\sort3-trailer.mp4]
DEBUG: [2020-06-14T14:10:46][Test-RequiredMetadata] Function started
DEBUG: [2020-06-14T14:10:46][Convert-CommaDelimitedString] Begin string: [coverurl,genre,id,maker,title,releasedate,releaseyear], End string [coverurl genre id maker title releasedate releaseyear]
WARNING: [2020-06-14T14:10:46][Test-RequiredMetadata] Skipped: [HEYZO-2189.mp4] 7 null required fields: [coverurl, genre, id, maker, title, releasedate, releaseyear]

uncensored.ini.txt

-url not working???

Tried The Following command
Javinizer -Path "W:\JAV\Censored-new\A-G\ekw-019" -DestinationPath "W:\JAV\Censored-new\A-G" -Url "https://www.r18.com/videos/vod/movies/detail/-/id=2ekw00019/?i3_ref=search&i3_ord=1"
But I get
[Javinizer] Function started
[Javinizer] Sort path set to: [W:\JAV\Censored-new\A-G\ekw-019]
[Javinizer] Destination path set to: [W:\JAV\Censored-new\A-G]
[Javinizer] (1 of 1) Sorting [EKW019.mp4]
WARNING: [Get-R18Url] Search [EKW-019] not matched on R18/Dmm
WARNING: [Get-R18Url] Search [EKW-019] not matched on R18/Dmm
VERBOSE: [Javinizer] Ended sort on [EKW019.mp4]

Shouldn't this scrape EKW019 ??
Which by the way exist at r18 but not EKW-019
Thanks
2.
3.
4.

Context

Your Environment

  • Module version used:
  • Operating System and PowerShell version:

Misleading/improperly documented priority options

Expected Behavior

  1. Begin the scraping process
  2. Results should contain JA results from JavLibraryJa, JavBusJa, etc.

Current Behavior

  1. Begin the scraping process
  2. Results does not contain JA results from JavLibraryJa, JavBusJa, etc.

Possible Solution

It seems that many alternative variables within Get-AggregatedDataObject are currently ignored, as detected by the PowerShell Script Analyzer in VSC (e.g. $javbusJaData, $javlibraryJaData)

Edit: Upon further investigation, it seems that we are expected to put javLibraryJa in the priority list instead of javLibrary (see $var = Get-Variable -Name "$($priority)Data"). Perhaps this could be made clearer in the configuration file?

Improve log viewing experience

Change how logs are viewed from console by adding extra parameters (e.g. -Errors, -Info)

Change the output to Write-Host to support dynamic line coloring.

How to recursive but output in sub folder?

I have this kind of folder structure:

Main Folder

  • Genre 1
  • Genre 2

I want to run the script recursively from the main folder and when in goes into Genre 1 I want it to make the folders inside of Genre 1 and once it finishes all the Genre files and moves onto Genre 2 I want all the files that were in Genre 2 to be turned into folders in Genre 2.

Currently it throws everything into main folder.

Is there a way to do this?

ID-009

I really like how this works, but there is one big issue. Which is the JAV with ID of ID-009.
According to JAVLibrary there is 5 JAV's with that ID,
In future when this happens, maybe make the script ask which one is the right one?

javinizer is not digitally signed so it won't run

Javinizer.psm1 is not digitally signed. You cannot
run this script on the current system. For more information about running scripts and setting execution policy, see
about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170

This is on Windows 10 setting to remotesigned didn't help here either

I installed it using the Powershell Gallery

Javlibrary Actress Names

With Movies That has Acress listed in JAVLIBRARY but not in R18 (eg. RCT-352)
The info file looks like

Azumi MizushimaManami TakaokaChieri MinamiYukana Miyano

Actress

The genre fields has the same problem as well same problem

Your Environment

  • Module version used: 1.1.14
  • Operating System and PowerShell version: 6.2.3
    Regards

Recheck parsers

Hey Boss,

I ran Javinizer over my video collection and unfortunately it only managed to sort half of the JAV. After I enabled verbose output and all of the parsers enabled in the settings it turns out they were being skipped due to non-matches. However if I were to go visit R18 or JAVlibrary manually I can see this is not the case. Please have a look into this.

log.txt

Single Name Actress

With the Single name Actress like AIKA,Hitomi, etc.... the file name written in the .actor directory is aika_,jpg or Hitomi_.jpg. Can you look at this again please.
Thanks for this very robust Module

Windows 10
PowerShell 6.2.3
Module 1.1.6

Your Environment

  • Module version used:
  • Operating System and PowerShell version:

Feature Request: write ID to nfo file as <ID> tag

First off, thanks for Javinizer! Looks to be a great replacement for JavMovieScraper

I am experimenting with getting a huge library of titles available in Jellyfin. Things are working well, but unfortunately Jellyfin (and Emby) do not allow users to customize the card text or other metadata fields that they display. This means that getting JAV-specific metadata like "ID" to display requires that we either write them to the Title (not my favorite choice) or use movie-specific fields like "tagline" "sorttitle" or "originaltitle" to hold the critical "ID" data.

I have found ways of using command line tools to copy and paste tags within nfo files, but Javinizer currently will only write some of its scraped data to the Title field.

Would it be possible to allow users to at least write the ID to an field? Additionally, it would be nice to allow users to map scraped metadata to arbitrary fields in the nfo file (so the scraped ID could be written to if I wanted.

dl.getchu.com Metadata Collection

Hello! I wanted to start off by thanking you for this project. This tool has accomplished what I previously thought was going to be an insurmountable task of organization, and so far it's fixed up ~400 javs I've had sitting around, with many more to go.

I was wondering if adding dl.getchu.com to the list of supported sites would be feasible. I happen to have a lot of doujin javs that unfortunately are not recorded in JAVLibrary or any of the other sites. Based on some observations, it doesn't look like many of these doujin javs conform to a standard coding system (like XYZ-001), so the URL parameter may need to employed to properly gather metadata. Getchu seems to have product codes for each item, so that could be a possible identifier.

DMM english scraper source

Hi. When scraping on JavLibrary, I'm not getting results even though it exists.
Here's example
The movie does exists at http://www.javlibrary.com/en/vl_searchbyid.php?keyword=GVG-943
But Javinizer gives
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryDataObject] Function started
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryUrl] Function started
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryUrl] Performing [GET] on Uri [http://www.javlibrary.com/en/vl_searchbyid.php?keyword=GVG-943] with Session: [Microsoft.PowerShell.Commands.WebRequestSession] and UserAgent: []
VERBOSE: [2020-09-05T15:36:13][Get-JavlibraryUrl] Search [GVG-943] not matched on JAVLibrary
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryUrl] Function ended
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryDataObject] JAVLibrary data object:
DEBUG:
DEBUG: [2020-09-05T15:36:13][Get-JavlibraryDataObject] Function ended

Am I missing a setup step?
Thanks.

Can we have <ACTRESS> added as a tag?

Hi,

Thanks for the great work on this module! It does what I have been looking for, for quite a while. Only thing is that I wish that we can have the actress name as a tag, since I'm used to the following format: ACTRESS - TITLE - ID.

If you do not feel like this is worth the trouble, feel free to close this issue. Again, thanks for writing this tool :)

Feature Req: option to create folder.jpg and poster.jpg

Thanks for creating this project. I just discovered it.
My plan is to use Javinizer to do initial sorting, and use JAVMovieScraper for manual edits.
JAVMovieScraper support creating both folder.jpg and poster.jpg.

To further interoperability, could you add this feature to Javinizer?
Perhaps support the following setting:
poster-file-string="folder","<ID>-poster"

Thanks again.

Javlibrary scraper failures

Javinizer fails to work when JAVLibrary scraper is turned on.

This is currently a known bug and will be resolved when the cloudscraper repository is updated to resolve new Cloudflare challenges.

[2020-05-01T19:19:42][Javinizer] Function started
ERROR:root:"http://www.javlibrary.com/en/" returned an error. Could not collect tokens.
Traceback (most recent call last):
  File "C:\Users\J\Documents\PowerShell\Modules\Javinizer\1.4.2\cfscraper.py", line 4, in <module>
    cookie_value, user_agent = cloudscraper.get_cookie_string(
  File "C:\Python38\lib\site-packages\cloudscraper\__init__.py", line 667, in get_cookie_string
    tokens, user_agent = cls.get_tokens(url, **kwargs)
  File "C:\Python38\lib\site-packages\cloudscraper\__init__.py", line 632, in get_tokens
    resp.raise_for_status()
  File "C:\Python38\lib\site-packages\requests\models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 503 Server Error: Service Temporarily Unavailable for url: http://www.javlibrary.com/en/
VERBOSE: [2020-05-01T19:19:43][Get-JavlibraryUrl] Search [abp-610] not matched on JAVLibrary
[2020-05-01T19:19:43][Javinizer] Function ended

nfo not being created - uncensored

RE: #47 (comment)
after adding javbus and jav321 into metadata priority settings, it seems to identify correctly, but does not create an nfo, cover, or poster despite it being scraped correctly. It seems to only sort the .mp4 file into a new folder.
ini file is the same from #47 (comment) except corrected metadata priority settings

PS C:\Users\User> Javinizer -Path d:\asian\sort3 -ImportSettings C:\Users\User\Documents\PowerShell\Modules\Javinizer\1.6.0\uncensored.ini -strict
DEBUG: [2020-06-15T17:02:08][Javinizer] R18: [False]; R18Zh: [False] Dmm: [False]; Javlibrary: [False]; JavlibraryZh: [False]; JavlibraryJa: [False]; Javbus: [True]; JavbusJa: [False]; Jav321: [True]
DEBUG: [2020-06-15T17:02:08][Javinizer] Attempting to read file(s) from path: [D:\asian\sort3]
DEBUG: [2020-06-15T17:02:08][Convert-JavTitle] Function started
DEBUG: [2020-06-15T17:02:08][Get-VideoFile] Function started
DEBUG: [2020-06-15T17:02:08][Convert-CommaDelimitedString] Begin string: [-trailer.,-5.], End string [-trailer. -5.]
DEBUG: [2020-06-15T17:02:08][Convert-CommaDelimitedString] Begin string: [asf,avi,flv,m4v,mkv,mp4,mov,rmvb], End string [asf avi flv m4v mkv mp4 mov rmvb]
DEBUG: [2020-06-15T17:02:08][Get-VideoFile] Function ended
DEBUG: [2020-06-15T17:02:08][Convert-JavTitle] Match 11
DEBUG: [2020-06-15T17:02:08][Convert-JavTitle] Function ended
DEBUG: [2020-06-15T17:02:08][Javinizer] Detected path: [D:\asian\sort3] as directory and destinationpath: [D:\asian\sort3] as directory
[2020-06-15T17:02:08][Javinizer] Sort path: [D:\asian\sort3]
[2020-06-15T17:02:08][Javinizer] Destination path: [D:\asian\sort3]
[2020-06-15T17:02:08][Javinizer] Included file ext: [asf,avi,flv,m4v,mkv,mp4,mov,rmvb]
[2020-06-15T17:02:08][Javinizer] Excluded file strings: [-trailer.,-5.]
[2020-06-15T17:02:08][Javinizer] (1 of 1) Sorting [HEYZO-2189.mp4]
DEBUG: [2020-06-15T17:02:08][Get-AggregatedDataObject] Function started
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [actress]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [actressthumburl]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [alternatetitle]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [coverurl]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [description]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [director]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [genre]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [id]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [label]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [runtime]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [maker]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [rating]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [ratingcount]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [releasedate]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [releaseyear]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [series]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [screenshoturl]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [title]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-MetadataPriority] Priority type loaded: [trailerurl]; Priority setting: [javbus jav321]
DEBUG: [2020-06-15T17:02:08][Get-AggregatedDataObject] Type: [FileDetails]
DEBUG: [2020-06-15T17:02:08][Get-JavbusDataObject] Function started
DEBUG: [2020-06-15T17:02:08][Get-JavbusUrl] Function started
DEBUG: [2020-06-15T17:02:08][Get-JavbusUrl] Performing [GET] on Uri [https://www.javbus.com/search/HEYZO-2189&type=0&parent=uc]
DEBUG: [2020-06-15T17:02:08][Get-JavbusUrl] Searching [1] of [1] results for [HEYZO-2189]
DEBUG: [2020-06-15T17:02:08][Get-JavbusUrl] Performing [GET] on Uri [https://www.javbus.com/HEYZO-2189]
DEBUG: [2020-06-15T17:02:08][Get-JavbusDataObject] Performing [GET] on Uri [https://www.javbus.com/en/HEYZO-2189]
DEBUG: [2020-06-15T17:02:09][Get-JavbusDataObject] JavBus data object:
DEBUG:
Source : javbus
Url : https://www.javbus.com/en/HEYZO-2189
Id : HEYZO-2189
Title : Sex Heaven -Tall Girl With Hot Legs Gets Multiple Orgasm-
Date : 2020-02-08
Year : 2020
Runtime : 64
Director :
Maker : HEYZO
Label :
Series : Sex Heaven
Rating :
Actress : 日向るな
ActressThumbUrl : https://images.javbus.com/actress/nowprinting.gif
Genre : {ギャル, shaved, AV女優, Creampie…}
CoverUrl : https://images.javbus.com/cover/18xd_b.jpg
ScreenshotUrl : {https://images.javbus.com/bigsample/18xd_b_1.jpg, https://images.javbus.com/bigsample/18xd_b_2.jpg, https://images.javbus.com/bigsample/18xd_b_3.jpg, https://images.javbus.com/bigsample/18xd_b_4.jpg…}

DEBUG: [2020-06-15T17:02:09][Get-JavbusDataObject] Function ended
DEBUG: [2020-06-15T17:02:09][Get-Jav321DataObject] Function started
DEBUG: [2020-06-15T17:02:09][Get-Jav321Url] Function started
DEBUG: [2020-06-15T17:02:09][Get-Jav321Url] Performing [GET] on Uri [https://jp.jav321.com/search]
DEBUG: [2020-06-15T17:02:09][Get-Jav321Url] Searching [1] of [1] results for [HEYZO-2189]
DEBUG: [2020-06-15T17:02:09][Get-Jav321Url] Performing [GET] on Uri [https://jp.jav321.com/video/heyzo2189]
DEBUG: [2020-06-15T17:02:10][Get-Jav321DataObject] Performing [GET] on Uri [https://jp.jav321.com/video/heyzo2189]
DEBUG: [2020-06-15T17:02:10][Get-Jav321DataObject] jav321 data object:
DEBUG:
Source : jav321
Url : https://jp.jav321.com/video/heyzo2189
Id : HEYZO-2189
Title :
Date : 0000-00-00
Year : 0000
Runtime : 64
Maker :
Actress :
ActressThumbUrl :
Genre :
CoverUrl :
ScreenshotUrl :

DEBUG: [2020-06-15T17:02:10][Get-Jav321DataObject] Function ended
DEBUG: [2020-06-15T17:02:10][Get-AggregatedDataObject] Ignored genres: []
DEBUG: [2020-06-15T17:02:10][Get-NewFileDirName] Function started
DEBUG: [2020-06-15T17:02:11][Get-NewFileDirName] Function ended
DEBUG:
Search : HEYZO-2189
Id : HEYZO-2189
Title : Sex Heaven -Tall Girl With Hot Legs Gets Multiple Orgasm-
AlternateTitle : Sex Heaven -Tall Girl With Hot Legs Gets Multiple Orgasm-
Description :
ReleaseDate : 2020-02-08
ReleaseYear : 2020
Runtime : 64
Director :
Maker : HEYZO
Label :
Series : Sex Heaven
Rating :
RatingCount :
Actress : {日向るな}
Genre : {ギャル, shaved, AV女優, Creampie…}
ActressThumbUrl : https://images.javbus.com/actress/nowprinting.gif
CoverUrl : https://images.javbus.com/cover/18xd_b.jpg
ScreenshotUrl : {https://images.javbus.com/bigsample/18xd_b_1.jpg, https://images.javbus.com/bigsample/18xd_b_2.jpg, https://images.javbus.com/bigsample/18xd_b_3.jpg, https://images.javbus.com/bigsample/18xd_b_4.jpg…}
TrailerUrl :
DisplayName : [HEYZO-2189] Sex Heaven -Tall Girl With Hot Legs Gets Multiple Orgasm-
FolderName : HEYZO-2189
ScreenshotFolderName : extrafanart
ScreenshotImgName : fanart
ActorImgFolderName : .actors
FileName : HEYZO-2189
PosterName : folder
ThumbnailName : fanart
TrailerName : HEYZO-2189-trailer
NfoName : HEYZO-2189
OriginalFileName : HEYZO-2189.mp4
OriginalBaseName : HEYZO-2189
OriginalDirectory : D:\asian\sort3
OriginalFullName : D:\asian\sort3\HEYZO-2189.mp4
PartNumber :

DEBUG: [2020-06-15T17:02:11][Get-AggregatedDataObject] Function ended
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Function started
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Crop path: [C:\Users\User\Documents\PowerShell\Modules\Javinizer\1.6.0\crop.py]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Folder path: [D:\asian\sort3\HEYZO-2189]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Nfo path: [D:\asian\sort3\HEYZO-2189\HEYZO-2189.nfo]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Cover path: [D:\asian\sort3\HEYZO-2189\fanart.jpg]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Poster path: [D:\asian\sort3\HEYZO-2189\folder.jpg]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Screenshot path: [D:\asian\sort3\HEYZO-2189\extrafanart]
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Trailer path: [D:\asian\sort3\HEYZO-2189\HEYZO-2189-trailer.mp4]
DEBUG: [2020-06-15T17:02:11][Test-RequiredMetadata] Function started
DEBUG: [2020-06-15T17:02:11][Convert-CommaDelimitedString] Begin string: [coverurl,genre,id,maker,title,releasedate,releaseyear], End string [coverurl genre id maker title releasedate releaseyear]
DEBUG: [2020-06-15T17:02:11][Test-RequiredMetadata] Function ended
DEBUG: [2020-06-15T17:02:11][Set-JavMovie] Function ended

Folder path length limitations

As the title states, a lot of my files when trying to use Javinizer has a folder path length limitation. I've changed it in the settings to allow higher amounts of characters in renaming but it may just be the file name and not the folder name. I don't think there's a setting to change that unless I cut out the title completely when creating folders for each video. Is there a command or any specific setting for me to change to allow longer names for folders?

Some files won't allow the renaming as they have between 220-400+ characters but folders can be named with way more characters than that.

skip

Javinizer on network drives

Hi, first of all great job on this, it has already helped me alot, but there is one thing that I can't seem to get running properly. The problem is, that the "poster.jpg" is not created when I apply Javinizer to a network drive.

I my case the drives are attached via SMB.
Javinizer only starts up using "//fileserver/videos/..." but not using "Z:/videos/..." as -Path.
Ther rest however, works flawlessly (except the missing "poster.jpg")

I have butchered the included crop.py to apply it manually afterwards, but this might still take quite a while with my limited skills. ^^'

As of right now, I'm assuming the "fanart.jpg" is pushed to my fileserver first and the cropping is done afterwards. Python might not appreciate the path it's given.
Maybe preparing the images locally might fix it.

If this is an easy fix, I would really appreciate it.

The problem was encountered on Windows 10 using PS6.

Error thrown when translate-description=true and description-priority=r18,dmm

Issue: translate.py error with invalid destination language when the description is already english.
It will throw an error due to the description language already being english.

Temp fix: Set description-priority=dmm to only scrape Japanese descriptions from dmm.co.jp

[2020-04-04T14:40:28][Javinizer] Function started
[2020-04-04T14:40:28][Javinizer] (1 of 1) Sorting [EBOD-241.mp4]
Traceback (most recent call last):
  File "C:\Users\Jeff\Documents\PowerShell\Modules\Javinizer\1.3.0\translate.py", line 5, in <module>
    translation = translator.translate(sys.argv[1], dest=sys.argv[2])
  File "C:\Python38\lib\site-packages\googletrans\client.py", line 162, in translate
    raise ValueError('invalid destination language')
ValueError: invalid destination language
[2020-04-04T14:40:47][Javinizer] Function ended

JAvbusja actress scrape

While Scraping IENF-085 with following settings

[Main]
scrape-r18=True
scrape-r18zh=False
scrape-dmm=True
scrape-javlibrary=False
scrape-javlibraryja=True
scrape-javlibraryzh=False
scrape-javbus=False
scrape-javbusja=False
scrape-jav321=True

actress-priority=javlibraryja,r18,jav321

Following lines are added to r18-thumbs.,cvs

"一条みお","System.Object[]","一条みお 藤井林檎 聖星姫花 河合亜依 掘ななか","System.Object[]","https://pics.r18.com/mono/actjpgs/fujii_ringo.jpg",""
"一条みお","System.Object[]","一条みお 藤井林檎 聖星姫花 河合亜依 掘ななか","System.Object[]","https://pics.r18.com/mono/actjpgs/kawana_ai2.jpg",""

Expected Behavior

As you can see all the actress names are added in single line something broken with javlibraryja scraper

Your Environment

  • Module version used: 1.7.3
  • Operating System and PowerShell version: Windows 10, Powershell 7.0.2

Issue with getting posters

i have set download-poster-img=True but it doesn't seem to be working as i understand it crops the "fanart" image but it is not doing that any fixes on this problem? i have everything installed and updated to the latest version

Add version check from module

Add a way to check for the user's Javinizer version.

Currently you would need to use Get-InstalledModule Javinizer
Add Javinizer -Version or Javinizer -v

-Multi is causing renaming issues

Hey Boss,

Just noticed that some of the videos that were left behind after a -Multi sort are actually part two's and three's of already moved JAVs. Running Javinizer again over these files results in :

Move-Item: C:\Users\Bailey\Documents\PowerShell\Modules\Javinizer\1.4.2\Private\
Set-JavMovie.ps1:91
Line |
  91 |  . tion Stop | Move-Item -Destination $folderPath -Force:$Force -ErrorAc
.
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Cannot create a file when that file already exists.

Unfortunately I cannot reproduce this unless I go back and rename the moved files by hand.

Rename poster/fanart

a way to automatically rename the poster and fanart to -poster/fanart?
if not... add pls?

luv ya

Is it possible to add support for uncensored movie?

Hi,

I've just notice that planned road-map regarding uncensored type have been remove in the recently release.

That sadly since this is also one of my waiting list.

So, may I ask about in the future? Is it possible to do meta-data scrape for this kind of movie?
These are many website that provide the data such as official site or AVSOX in example.

Regards.

Fix/Renew r18-thumbs.csv alias logic

Issue: Aliases and entries added to the r18-thumbs.csv file aren't working consistently.
Recreate code logic and allow multiple aliases per entry.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.