mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-01-28 13:30:56 +01:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
63aeded8b6 | ||
|
|
895adc9f25 | ||
|
|
ff79de7724 | ||
|
|
2e5cabe7ab | ||
|
|
2c764f993c | ||
|
|
fc8196dc10 | ||
|
|
c39d477deb | ||
|
|
cbdc4a0c8e | ||
|
|
972d3bc1fc | ||
|
|
9232859a9d | ||
|
|
e41d74e4d1 | ||
|
|
b9bb39732e | ||
|
|
601e630ca2 | ||
|
|
76d7509e86 | ||
|
|
47aa3df44c | ||
|
|
37eb633760 | ||
|
|
246e4d2d74 | ||
|
|
78bc2afcff |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -158,3 +158,7 @@ cython_debug/
|
|||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.idea/
|
||||||
|
|
||||||
|
config.yml
|
||||||
|
|
||||||
|
exports/
|
||||||
262
README.md
262
README.md
@@ -1,11 +1,10 @@
|
|||||||
# Profilarr
|
# Profilarr
|
||||||
|
|
||||||
Profilarr is a Python-based tool designed to add import/export functionality to the \*arr suite. It offers a user-friendly way to export and import custom formats and quality profiles between Radarr and Sonarr installations.
|
Profilarr is a Python-based tool designed to add import/export/sync functionality to the \*arr suite. It offers a user-friendly way to export existing custom formats / profiles, import new ones or sync a master instance of Radarr / Sonarr with extras.
|
||||||
|
|
||||||
## ⚠️ Before Continuing
|
## ⚠️ Before Continuing
|
||||||
|
|
||||||
- **This tool will overwrite any custom formats in your \*arr installation that have the same name.**
|
- **This tool will overwrite any custom formats in your \*arr installation that have the same name.**
|
||||||
- **Custom Formats MUST be imported before syncing any premade profile.**
|
|
||||||
- **Always back up your Radarr and Sonarr configurations before using Profilarr to avoid unintended data loss.** (Seriously, do it. Even I've lost data to this tool because I forgot to back up my configs.)
|
- **Always back up your Radarr and Sonarr configurations before using Profilarr to avoid unintended data loss.** (Seriously, do it. Even I've lost data to this tool because I forgot to back up my configs.)
|
||||||
|
|
||||||
## 🛠️ Installation
|
## 🛠️ Installation
|
||||||
@@ -17,47 +16,264 @@ Profilarr is a Python-based tool designed to add import/export functionality to
|
|||||||
|
|
||||||
### 📦 Dependencies
|
### 📦 Dependencies
|
||||||
|
|
||||||
- `requests` (Install using `pip install requests`)
|
- run `pip install -r requirements.txt` to install dependencies.
|
||||||
|
|
||||||
### Initial Setup
|
### Initial Setup
|
||||||
|
|
||||||
1. Download the latest Profilarr package from the release section.
|
1. Download the latest Profilarr package from the release section.
|
||||||
2. Extract its contents into a folder.
|
2. Extract its contents into a folder.
|
||||||
3. Open the `config.json` file in a text editor.
|
3. Run `python setup.py` in your command line interface to generate a config file.
|
||||||
- Add your Radarr / Sonarr API key and modify the base URL as necessary.
|
- This will create a `config.yml` file in the same directory as `setup.py`.
|
||||||
- If importing / exporting, only change the master installation's API key and base URL.
|
4. Open the `config.yml` file in a text editor.
|
||||||
- If syncing, add the API keys and base URLs of all instances you want to sync.
|
- Add the URL and API key to the master instances of Radarr / Sonarr.
|
||||||
- The master install will be the one that all other instances sync to.
|
- If syncing, add the URL, API key and a name to each extra instance of Radarr / Sonarr.
|
||||||
4. Save the changes.
|
- If exporting, adjust the `export_path` to your desired export location.
|
||||||
|
- If importing non Dictionarry files, adjust the `import_path` to your desired import location.
|
||||||
|
5. Save the changes.
|
||||||
|
|
||||||
## 🚀 Usage
|
## 🚀 Usage
|
||||||
|
- If using Windows, use `python script.py` or `py script.py`. If on Linux, use `python3 script.py`.
|
||||||
### Exporting
|
|
||||||
|
|
||||||
1. Run `python exportarr.py` in your command line interface.
|
|
||||||
2. Follow the on-screen prompts to select the app (Radarr or Sonarr) and the data (Custom Formats or Quality Profiles) you want to export.
|
|
||||||
3. Exported data will be saved in respective directories within the tool's folder.
|
|
||||||
|
|
||||||
### Importing
|
### Importing
|
||||||
|
|
||||||
1. Run `python importarr.py` in your command line interface.
|
Note: For users who start using Profilarr before v0.3, you no longer need to manually import custom formats. They will be imported automatically. Quality Profiles still require manual selection.
|
||||||
2. Follow the on-screen prompts to select the app and the data you want to import.
|
|
||||||
3. Choose the specific file for Custom Formats or select a profile for Quality Profiles.
|
1. If importing Dictionarry files, make sure the import path is `./imports` (This is the default path).
|
||||||
4. The data will be imported to your selected Radarr or Sonarr installation.
|
2. If importing non Dictionarry files, make sure the import path is set to your desired import location.
|
||||||
|
3. Run `python importarr.py` in your command line interface.
|
||||||
|
4. Follow the on-screen prompts to select your desired app and which instance(s) to import to.
|
||||||
|
5. Choose your desired quality profile(s) to import.
|
||||||
|
|
||||||
|
#### Example: Importing 1080p Transparent and 2160p Optimal Quality Profiles
|
||||||
|
|
||||||
|
```
|
||||||
|
Select your app of choice
|
||||||
|
1. Radarr
|
||||||
|
2. Sonarr
|
||||||
|
Enter your choice:
|
||||||
|
1
|
||||||
|
Select your Radarr instance
|
||||||
|
1. Radarr (Master)
|
||||||
|
2. Radarr (4k-radarr)
|
||||||
|
Choose an instance by number, multiple numbers separated by commas or type 'all' for all instances:
|
||||||
|
2
|
||||||
|
|
||||||
|
Importing custom formats to Radarr : 4k-radarr
|
||||||
|
|
||||||
|
Adding custom format 'D-Z0N3' : SUCCESS
|
||||||
|
Adding custom format 'DON' : SUCCESS
|
||||||
|
Adding custom format 'EbP' : SUCCESS
|
||||||
|
Adding custom format 'Geek' : SUCCESS
|
||||||
|
Adding custom format 'TayTo' : SUCCESS
|
||||||
|
... and 129 more.
|
||||||
|
|
||||||
|
Successfully added 0 custom formats, updated 134 custom formats.
|
||||||
|
|
||||||
|
Available profiles:
|
||||||
|
1. 1080p Balanced (Radarr).json
|
||||||
|
2. 1080p Balanced (Single Grab) (Radarr).json
|
||||||
|
3. 1080p h265 Balanced (Radarr).json
|
||||||
|
4. 1080p h265 Balanced (Single Grab) (Radarr).json
|
||||||
|
5. 1080p Optimal (Radarr).json
|
||||||
|
6. 1080p Optimal (Single Grab) (Radarr).json
|
||||||
|
7. 1080p Transparent (Double Grab) (Radarr).json
|
||||||
|
8. 1080p Transparent (Radarr).json
|
||||||
|
9. 1080p Transparent (Single Grab) (Radarr).json
|
||||||
|
10. 2160p Optimal (Radarr).json
|
||||||
|
11. 2160p Optimal (Single Grab) (Radarr).json
|
||||||
|
|
||||||
|
Enter the numbers of the profiles you want to import separated by commas, or type 'all' to import all profiles:
|
||||||
|
8,10
|
||||||
|
Importing Quality Profiles to Radarr : 4k-radarr
|
||||||
|
|
||||||
|
Adding '1080p Transparent' quality profile : SUCCESS
|
||||||
|
Adding '2160p Optimal' quality profile : SUCCESS
|
||||||
|
```
|
||||||
|
|
||||||
|
### Exporting
|
||||||
|
|
||||||
|
1. Make sure the export path is set to your desired export location. The default is `./exports`.
|
||||||
|
2. Run `python exportarr.py` in your command line interface.
|
||||||
|
3. Follow the on-screen prompts to select your desired app and which instance(s) to export from.
|
||||||
|
4. Choose the data you want to export.
|
||||||
|
5. The data will be exported to `exports/{data_type}/{app}/`.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Select your app of choice
|
||||||
|
1. Radarr
|
||||||
|
2. Sonarr
|
||||||
|
Enter your choice:
|
||||||
|
1
|
||||||
|
Select your Radarr instance
|
||||||
|
1. Radarr (Master)
|
||||||
|
2. Radarr (4k-radarr)
|
||||||
|
Choose an instance by number, multiple numbers separated by commas or type 'all' for all instances:
|
||||||
|
2
|
||||||
|
|
||||||
|
Exporting Custom Formats for Radarr : 4k-radarr
|
||||||
|
Exported 134 custom formats to ./exports/custom_formats/Radarr for 4k-radarr
|
||||||
|
|
||||||
|
Exporting Quality Profiles for Radarr : 4k-radarr...
|
||||||
|
Exported 2 quality profiles to ./exports/quality_profiles/Radarr for 4k-radarr
|
||||||
|
```
|
||||||
|
|
||||||
### Syncing
|
### Syncing
|
||||||
|
|
||||||
|
1. Make sure the import path is set to whatever your export path is. This is important, as the script will look for the exported files in this location.
|
||||||
1. Run `python syncarr.py` in your command line interface.
|
1. Run `python syncarr.py` in your command line interface.
|
||||||
2. The script will automatically export data from the master instance and import it to all other instances specified in `config.json`.
|
1. The script will automatically export data from the master instance and import it to all other instances specified in `config.json`.
|
||||||
3. This feature is designed to manage multiple Radarr/Sonarr instances, syncing profiles and formats seamlessly.
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```bash
|
||||||
|
PS Z:\Profilarr> py syncarr.py
|
||||||
|
Select your app of choice
|
||||||
|
1. Radarr
|
||||||
|
2. Sonarr
|
||||||
|
Enter your choice:
|
||||||
|
1
|
||||||
|
Exporting Custom Formats for radarr : Master
|
||||||
|
Exported 134 custom formats to ./exports\custom_formats\radarr for Master
|
||||||
|
|
||||||
|
Exporting Quality Profiles for radarr : Master...
|
||||||
|
Exported 14 quality profiles to ./exports\quality_profiles\radarr for Master
|
||||||
|
|
||||||
|
Importing custom formats to radarr : 4k-radarr
|
||||||
|
|
||||||
|
...
|
||||||
|
Updating custom format 'Blu-Ray (Remux)' : SUCCESS
|
||||||
|
Updating custom format 'MAX' : SUCCESS
|
||||||
|
Updating custom format 'h265 (4k)' : SUCCESS
|
||||||
|
Updating custom format 'TEST FLAC' : SUCCESS
|
||||||
|
|
||||||
|
Successfully added 134 custom formats, updated 0 custom formats.
|
||||||
|
|
||||||
|
Available profiles:
|
||||||
|
1. 1080p Balanced (Radarr).json
|
||||||
|
2. 1080p Balanced (Single Grab) (Radarr).json
|
||||||
|
3. 1080p h265 Balanced (Radarr).json
|
||||||
|
4. 1080p h265 Balanced (Single Grab) (Radarr).json
|
||||||
|
5. 1080p Optimal (Radarr).json
|
||||||
|
6. 1080p Optimal (Single Grab) (Radarr).json
|
||||||
|
7. 1080p Transparent (Double Grab) (Radarr).json
|
||||||
|
8. 1080p Transparent (Radarr).json
|
||||||
|
9. 1080p Transparent (Single Grab) (Radarr).json
|
||||||
|
10. 2160p Optimal (Radarr).json
|
||||||
|
11. 2160p Optimal (Single Grab) (Radarr).json
|
||||||
|
|
||||||
|
Enter the numbers of the profiles you want to import separated by commas, or type 'all' to import all profiles:
|
||||||
|
all
|
||||||
|
Importing Quality Profiles to radarr : 4k-radarr
|
||||||
|
|
||||||
|
Adding '1080p Balanced' quality profile : SUCCESS
|
||||||
|
Adding '1080p Balanced (Single Grab)' quality profile : SUCCESS
|
||||||
|
Adding '1080p h265 Balanced' quality profile : SUCCESS
|
||||||
|
Adding '1080p h265 Balanced (Single Grab)' quality profile : SUCCESS
|
||||||
|
Adding '1080p Optimal' quality profile : SUCCESS
|
||||||
|
Adding '1080p Optimal (Single Grab)' quality profile : SUCCESS
|
||||||
|
Adding '1080p Transparent (Double Grab)' quality profile : SUCCESS
|
||||||
|
Updating '1080p Transparent' quality profile : SUCCESS
|
||||||
|
Adding '1080p Transparent (Single Grab)' quality profile : SUCCESS
|
||||||
|
Updating '2160p Optimal' quality profile : SUCCESS
|
||||||
|
Adding '2160p Optimal (Single Grab)' quality profile : SUCCESS
|
||||||
|
```
|
||||||
|
|
||||||
|
### Deleting
|
||||||
|
|
||||||
|
1. Run `python deletarr.py` in your command line interface.
|
||||||
|
2. Select the instance(s) from which you wish to delete data.
|
||||||
|
3. Choose between deleting Custom Formats, Quality Profiles or both
|
||||||
|
4. Select specific items by typing their numbers separated by commas, or type 'all' to delete everything.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
Select your app of choice
|
||||||
|
1. Radarr
|
||||||
|
2. Sonarr
|
||||||
|
Enter your choice:
|
||||||
|
1
|
||||||
|
Select your Radarr instance
|
||||||
|
1. Radarr (Master)
|
||||||
|
2. Radarr (4k-radarr)
|
||||||
|
Choose an instance by number, multiple numbers separated by commas or type 'all' for all instances:
|
||||||
|
2
|
||||||
|
|
||||||
|
Please select what you want to delete:
|
||||||
|
1. Custom Formats
|
||||||
|
2. Quality Profiles
|
||||||
|
3. Both
|
||||||
|
Enter your choice: 3
|
||||||
|
Available items to delete:
|
||||||
|
1. D-Z0N3
|
||||||
|
2. DON
|
||||||
|
3. EbP
|
||||||
|
4. Geek
|
||||||
|
5. TayTo
|
||||||
|
6. ZQ
|
||||||
|
...
|
||||||
|
|
||||||
|
Enter the number(s) of the items you wish to delete, separated by commas, or type 'all' for all:
|
||||||
|
Your choice: all
|
||||||
|
Deleting Custom Format (D-Z0N3) : SUCCESS
|
||||||
|
Deleting Custom Format (DON) : SUCCESS
|
||||||
|
Deleting Custom Format (EbP) : SUCCESS
|
||||||
|
Deleting Custom Format (Geek) : SUCCESS
|
||||||
|
Deleting Custom Format (TayTo) : SUCCESS
|
||||||
|
Deleting Custom Format (ZQ) : SUCCESS
|
||||||
|
|
||||||
|
Available items to delete:
|
||||||
|
1. 1080p Transparent
|
||||||
|
2. 2160p Optimal
|
||||||
|
3. 1080p Balanced
|
||||||
|
4. 1080p Balanced (Single Grab)
|
||||||
|
5. 1080p h265 Balanced
|
||||||
|
6. 1080p h265 Balanced (Single Grab)
|
||||||
|
7. 1080p Optimal
|
||||||
|
8. 1080p Optimal (Single Grab)
|
||||||
|
9. 1080p Transparent (Double Grab)
|
||||||
|
10. 1080p Transparent (Single Grab)
|
||||||
|
11. 2160p Optimal (Single Grab)
|
||||||
|
|
||||||
|
Enter the number(s) of the items you wish to delete, separated by commas, or type 'all' for all:
|
||||||
|
Your choice: all
|
||||||
|
|
||||||
|
Deleting Quality Profile (1080p Transparent) : SUCCESS
|
||||||
|
Deleting Quality Profile (2160p Optimal) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Balanced) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Balanced (Single Grab)) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p h265 Balanced) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p h265 Balanced (Single Grab)) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Optimal) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Optimal (Single Grab)) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Transparent (Double Grab)) : SUCCESS
|
||||||
|
Deleting Quality Profile (1080p Transparent (Single Grab)) : SUCCESS
|
||||||
|
Deleting Quality Profile (2160p Optimal (Single Grab)) : SUCCESS
|
||||||
|
PS Z:\Profilarr>
|
||||||
|
```
|
||||||
|
|
||||||
### Radarr and Sonarr Compatibility
|
### Radarr and Sonarr Compatibility
|
||||||
|
|
||||||
- Custom formats _can_ be imported and exported between Radarr and Sonarr (but might not work as expected).
|
- You are only able to import / sync files to the app that is included in the file name (e.g. `Radarr` or `Sonarr`).
|
||||||
- Quality profiles are not directly interchangeable between Radarr and Sonarr due to differences in quality source names. If you want to use the same profile in both apps, you will need to manually edit the profile's quality source names before importing it.
|
- It is possible to manually rename the files to import them to the other app, but this is not recommended.
|
||||||
|
- Custom Formats will succesfully import, but will require manual editing to work with the other app, i.e. you must adjust the quality sources to match the other app's naming scheme.
|
||||||
|
- Quality Profiles will not import at all, as they are not compatible with the other app. It is possible to import them manually by editing the json directly, but this is not recommended.
|
||||||
|
- In future, I may add a feature to automatically convert profiles between the two apps, but this is not currently a priority.
|
||||||
|
|
||||||
## 🌟 Upcoming Features
|
## 🌟 Upcoming Features
|
||||||
|
|
||||||
- **Lidarr Support:** Expand functionality to include Lidarr, allowing users to manage music quality profiles and custom formats.
|
- **Lidarr Support:** Expand functionality to include Lidarr, allowing users to manage music quality profiles and custom formats.
|
||||||
- **User Interface (UI):** Development of a graphical user interface (GUI) for easier and more intuitive interaction with Profilarr. This UI will cater to users who prefer graphical over command-line interactions.
|
- **User Interface (UI):** Development of a graphical user interface (GUI) for easier and more intuitive interaction with Profilarr. This UI will cater to users who prefer graphical over command-line interactions.
|
||||||
- **Automatic Updates:** Implement an auto-update mechanism for Profilarr, ensuring users always have access to the latest features, improvements, and bug fixes without manual intervention.
|
- **Automatic Updates:** Implement an auto-update mechanism for Profilarr, ensuring users always have access to the latest features, improvements, and bug fixes without manual intervention.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
- I've added a docker compose file for testing custom formats / quality profiles. Run `docker-compose up -d` to start the Radarr/ Sonarr test containers. Add your API keys to the `config.yml` file and begin testing!
|
||||||
|
|
||||||
|
# TRaSH Guides
|
||||||
|
|
||||||
|
Some custom formats found here have been interated on from the trash guides. Credit for these goes entirely to trash, and can be found on their site here. It is not my intention to steal their work, but rather to build on it and make it more accessible to the average user through my quality profiles. Please check out their site for more information on their work.
|
||||||
|
|
||||||
|
https://trash-guides.info/
|
||||||
|
|||||||
38
config.json
38
config.json
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
"master": {
|
|
||||||
"sonarr": {
|
|
||||||
"base_url": "http://localhost:8989",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
},
|
|
||||||
"radarr": {
|
|
||||||
"base_url": "http://localhost:7878",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"extra_installations": {
|
|
||||||
"radarr": [
|
|
||||||
{
|
|
||||||
"name": "extra_radarr1",
|
|
||||||
"base_url": "http://localhost:7788",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "extra_radarr2",
|
|
||||||
"base_url": "http://localhost:7789",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sonarr": [
|
|
||||||
{
|
|
||||||
"name": "extra_sonarr1",
|
|
||||||
"base_url": "http://localhost:8988",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "extra_sonarr2",
|
|
||||||
"base_url": "http://localhost:8987",
|
|
||||||
"api_key": "API_KEY_HERE"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
101
deletarr.py
Normal file
101
deletarr.py
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
from helpers import *
|
||||||
|
|
||||||
|
def user_select_items_to_delete(items):
|
||||||
|
"""
|
||||||
|
Prompts the user to select items to delete from a given list of items.
|
||||||
|
Each item in the list is expected to be a dictionary with at least an 'id' and 'name' key.
|
||||||
|
"""
|
||||||
|
print_message("Available items to delete:", "purple")
|
||||||
|
for index, item in enumerate(items, start=1):
|
||||||
|
print_message(f"{index}. {item['name']}", "green")
|
||||||
|
|
||||||
|
print_message("Enter the number(s) of the items you wish to delete, separated by commas, or type 'all' for all:", "yellow")
|
||||||
|
user_input = input("Your choice: ").strip().lower()
|
||||||
|
selected_items = []
|
||||||
|
|
||||||
|
if user_input == 'all':
|
||||||
|
return items
|
||||||
|
else:
|
||||||
|
indices = user_input.split(',')
|
||||||
|
for index in indices:
|
||||||
|
try:
|
||||||
|
index = int(index.strip()) - 1
|
||||||
|
if 0 <= index < len(items):
|
||||||
|
selected_items.append(items[index])
|
||||||
|
else:
|
||||||
|
print_message("Invalid selection, ignoring.", "red")
|
||||||
|
except ValueError:
|
||||||
|
print_message("Invalid input, please enter numbers only.", "red")
|
||||||
|
|
||||||
|
return selected_items
|
||||||
|
|
||||||
|
|
||||||
|
def prompt_export_choice():
|
||||||
|
"""
|
||||||
|
Prompt user to choose between exporting Custom Formats, Quality Profiles, or both.
|
||||||
|
Returns a list of choices.
|
||||||
|
"""
|
||||||
|
print_message("Please select what you want to delete:", "blue")
|
||||||
|
options = {"1": "Custom Formats", "2": "Quality Profiles", "3": "Both"}
|
||||||
|
for key, value in options.items():
|
||||||
|
print_message(f"{key}. {value}", "green")
|
||||||
|
choice = input("Enter your choice: ").strip()
|
||||||
|
|
||||||
|
# Validate choice
|
||||||
|
while choice not in options:
|
||||||
|
print_message("Invalid choice, please select a valid option:", "red")
|
||||||
|
choice = input("Enter your choice: ").strip()
|
||||||
|
|
||||||
|
if choice == "3":
|
||||||
|
return ["Custom Formats", "Quality Profiles"]
|
||||||
|
else:
|
||||||
|
return [options[choice]]
|
||||||
|
|
||||||
|
def delete_custom_formats_or_profiles(app, instance, item_type, config):
|
||||||
|
"""
|
||||||
|
Deletes either custom formats or quality profiles based on the item_type.
|
||||||
|
"""
|
||||||
|
api_key = instance['api_key']
|
||||||
|
base_url = instance['base_url']
|
||||||
|
resource_type = item_type # 'customformat' or 'qualityprofile'
|
||||||
|
|
||||||
|
if item_type == 'customformat':
|
||||||
|
type = 'Custom Format'
|
||||||
|
elif item_type == 'qualityprofile':
|
||||||
|
type = 'Quality Profile'
|
||||||
|
|
||||||
|
# Fetch items to delete
|
||||||
|
items = make_request('get', base_url, api_key, resource_type)
|
||||||
|
if items is None or not isinstance(items, list):
|
||||||
|
return
|
||||||
|
|
||||||
|
# Assuming a function to select items to delete. It could list items and ask the user which to delete.
|
||||||
|
items_to_delete = user_select_items_to_delete(items) # This needs to be implemented or adapted
|
||||||
|
|
||||||
|
# Proceed to delete selected items
|
||||||
|
for item in items_to_delete:
|
||||||
|
item_id = item['id']
|
||||||
|
item_name = item['name']
|
||||||
|
print_message(f"Deleting {type} ({item_name})", "blue", newline=False)
|
||||||
|
response = make_request('delete', base_url, api_key, f"{resource_type}/{item_id}")
|
||||||
|
if response in [200, 202, 204]:
|
||||||
|
print_message(" : SUCCESS", "green")
|
||||||
|
else:
|
||||||
|
print_message(" : FAIL", "red")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
app = get_app_choice()
|
||||||
|
instances = get_instance_choice(app)
|
||||||
|
config = load_config()
|
||||||
|
|
||||||
|
choices = prompt_export_choice()
|
||||||
|
for instance in instances:
|
||||||
|
for choice in choices:
|
||||||
|
if choice == "Custom Formats":
|
||||||
|
delete_custom_formats_or_profiles(app, instance, 'customformat', config)
|
||||||
|
elif choice == "Quality Profiles":
|
||||||
|
delete_custom_formats_or_profiles(app, instance, 'qualityprofile', config)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
37
develop/docker-compose.yml
Normal file
37
develop/docker-compose.yml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
version: "3.3"
|
||||||
|
|
||||||
|
x-common-settings: &common-settings
|
||||||
|
environment:
|
||||||
|
PUID: 1000 # user id, change as necessary
|
||||||
|
PGID: 1000 # group id, change as necessary
|
||||||
|
TZ: Europe/London # timezone, change as necessary
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
services:
|
||||||
|
radarr:
|
||||||
|
<<: *common-settings
|
||||||
|
image: linuxserver/radarr
|
||||||
|
container_name: radarr
|
||||||
|
ports:
|
||||||
|
- "7887:7878" # change the left value to the desired host port for Radarr
|
||||||
|
|
||||||
|
radarr2:
|
||||||
|
<<: *common-settings
|
||||||
|
image: linuxserver/radarr
|
||||||
|
container_name: radarr2
|
||||||
|
ports:
|
||||||
|
- "7888:7878" # change the left value to the desired host port for Radarr
|
||||||
|
|
||||||
|
sonarr:
|
||||||
|
<<: *common-settings
|
||||||
|
image: linuxserver/sonarr
|
||||||
|
container_name: sonarr
|
||||||
|
ports:
|
||||||
|
- "8998:8989" # change the left value to the desired host port for Sonarr
|
||||||
|
|
||||||
|
sonarr2:
|
||||||
|
<<: *common-settings
|
||||||
|
image: linuxserver/sonarr
|
||||||
|
container_name: sonarr2
|
||||||
|
ports:
|
||||||
|
- "8999:8989" # change the left value to the desired host port for Sonarr
|
||||||
232
exportarr.py
232
exportarr.py
@@ -1,158 +1,134 @@
|
|||||||
import json
|
from helpers import *
|
||||||
import requests
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
||||||
# ANSI escape sequences for colors
|
def prompt_export_choice():
|
||||||
class Colors:
|
options = { "1": "Custom Formats", "2": "Quality Profiles" }
|
||||||
HEADER = '\033[95m'
|
|
||||||
OKBLUE = '\033[94m'
|
|
||||||
OKGREEN = '\033[92m'
|
|
||||||
WARNING = '\033[93m'
|
|
||||||
FAIL = '\033[91m'
|
|
||||||
ENDC = '\033[0m'
|
|
||||||
BOLD = '\033[1m'
|
|
||||||
UNDERLINE = '\033[4m'
|
|
||||||
|
|
||||||
# Load configuration for main app
|
print_message("Please select what you want to export:", "blue")
|
||||||
with open('config.json', 'r') as config_file:
|
for number, option in options.items():
|
||||||
config = json.load(config_file)['master']
|
print_message(f"{number}. {option}", "green")
|
||||||
|
print_message("Enter the number(s) of your choice, multiple separated by commas, or type 'all' for all options", "yellow")
|
||||||
|
|
||||||
def get_user_choice():
|
user_choice = input("Your choice: ")
|
||||||
choice = input("Enter an app to export from (radarr/sonarr): ").lower()
|
|
||||||
while choice not in ["radarr", "sonarr"]:
|
|
||||||
print(Colors.FAIL + "Invalid input. Please enter either 'radarr' or 'sonarr'." + Colors.ENDC)
|
|
||||||
choice = input("Enter the source (radarr/sonarr): ").lower()
|
|
||||||
print()
|
|
||||||
return choice
|
|
||||||
|
|
||||||
def get_export_choice():
|
if user_choice.lower() == 'all':
|
||||||
print(Colors.HEADER + "Choose what to export:" + Colors.ENDC)
|
return list(options.values())
|
||||||
print("1. Custom Formats")
|
|
||||||
print("2. Quality Profiles")
|
|
||||||
print("3. Both")
|
|
||||||
choice = input("Enter your choice (1/2/3): ").strip()
|
|
||||||
while choice not in ["1", "2", "3"]:
|
|
||||||
print(Colors.FAIL + "Invalid input. Please enter 1, 2, or 3." + Colors.ENDC)
|
|
||||||
choice = input("Enter your choice (1/2/3): ").strip()
|
|
||||||
print()
|
|
||||||
return choice
|
|
||||||
|
|
||||||
def get_app_config(source):
|
|
||||||
app_config = config[source]
|
|
||||||
return app_config['base_url'], app_config['api_key']
|
|
||||||
|
|
||||||
def sanitize_filename(filename):
|
|
||||||
sanitized_filename = re.sub(r'[\\/*?:"<>|]', '_', filename)
|
|
||||||
return sanitized_filename
|
|
||||||
|
|
||||||
def handle_response_errors(response):
|
|
||||||
if response.status_code == 401:
|
|
||||||
print(Colors.FAIL + "Authentication error: Invalid API key." + Colors.ENDC)
|
|
||||||
elif response.status_code == 403:
|
|
||||||
print(Colors.FAIL + "Forbidden: Access is denied." + Colors.ENDC)
|
|
||||||
else:
|
else:
|
||||||
print(Colors.FAIL + f"An error occurred! (HTTP {response.status_code})" + Colors.ENDC)
|
return [options[choice] for choice in user_choice.split(',') if choice in options]
|
||||||
print("Response Content: ", response.content.decode('utf-8'))
|
|
||||||
|
|
||||||
def print_saved_items(items, item_type):
|
def create_export_path(export_path, app):
|
||||||
if len(items) > 10:
|
# Convert app to lowercase
|
||||||
items_to_display = items[:10]
|
app = app.lower() # Ensure app is in lowercase
|
||||||
for item in items_to_display:
|
# Create a directory path for the export in lowercase
|
||||||
print(f" - {item}")
|
dir_path = os.path.join(export_path, 'custom_formats', app).lower() # Convert entire path to lowercase
|
||||||
print(f"... and {len(items) - 10} more.")
|
|
||||||
else:
|
|
||||||
for item in items:
|
|
||||||
print(f" - {item}")
|
|
||||||
|
|
||||||
def ensure_directory_exists(directory):
|
# Create the directory if it doesn't exist
|
||||||
if not os.path.exists(directory):
|
os.makedirs(dir_path, exist_ok=True)
|
||||||
os.makedirs(directory)
|
|
||||||
print(Colors.OKBLUE + f"Created directory: {directory}" + Colors.ENDC)
|
|
||||||
|
|
||||||
def export_cf(source, save_path='./custom_formats'):
|
return dir_path
|
||||||
ensure_directory_exists(save_path) # Ensure the directory exists with the given save_path
|
|
||||||
|
|
||||||
base_url, api_key = get_app_config(source)
|
def export_custom_formats(app, instances, config):
|
||||||
headers = {"X-Api-Key": api_key}
|
|
||||||
params = {"apikey": api_key}
|
|
||||||
|
|
||||||
print(Colors.OKBLUE + f"Attempting to access {source.capitalize()} at {base_url}" + Colors.ENDC)
|
|
||||||
|
|
||||||
custom_format_url = f"{base_url}/api/v3/customformat"
|
for instance in instances:
|
||||||
|
print_message(f"Exporting Custom Formats for {app.capitalize()} : {instance['name']}", 'blue')
|
||||||
try:
|
|
||||||
response = requests.get(custom_format_url, params=params, headers=headers)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
url = instance['base_url']
|
||||||
data = response.json()
|
api_key = instance['api_key']
|
||||||
print(Colors.OKGREEN + f"Found {len(data)} custom formats." + Colors.ENDC)
|
|
||||||
|
|
||||||
saved_formats = []
|
# Get the export path from the config
|
||||||
for custom_format in data:
|
export_path = config['settings']['export_path']
|
||||||
custom_format.pop('id', None)
|
|
||||||
saved_formats.append(custom_format['name'])
|
|
||||||
|
|
||||||
file_path = f'{save_path}/Custom Formats ({source.capitalize()}).json'
|
|
||||||
with open(file_path, 'w') as f:
|
|
||||||
json.dump(data, f, indent=4)
|
|
||||||
|
|
||||||
print_saved_items(saved_formats, "Custom Formats")
|
# Create the export directory
|
||||||
print(Colors.OKGREEN + f"Saved to '{file_path}'" + Colors.ENDC)
|
dir_path = create_export_path(export_path, app)
|
||||||
print()
|
|
||||||
else:
|
|
||||||
handle_response_errors(response)
|
|
||||||
|
|
||||||
except requests.exceptions.ConnectionError:
|
# Assuming 'export' is a valid resource_type for the API
|
||||||
print(Colors.FAIL + f"Failed to connect to {source.capitalize()}! Please check if it's running and accessible." + Colors.ENDC)
|
response = make_request('get', url, api_key, 'customformat')
|
||||||
|
|
||||||
|
successful_exports = 0 # Counter for successful exports
|
||||||
|
|
||||||
|
# Scrub the JSON data and save each custom format in its own file
|
||||||
|
all_custom_formats = []
|
||||||
|
for custom_format in response:
|
||||||
|
# Remove the 'id' field
|
||||||
|
custom_format.pop('id', None)
|
||||||
|
|
||||||
def export_qf(source, save_path='./profiles'):
|
all_custom_formats.append(custom_format)
|
||||||
ensure_directory_exists(save_path) # Ensure the directory exists with the given save_path
|
successful_exports += 1 # Increment the counter if the export was successful
|
||||||
|
|
||||||
base_url, api_key = get_app_config(source)
|
file_name = f"custom formats ({app.lower()} - {instance['name'].lower()}).json"
|
||||||
headers = {"X-Api-Key": api_key}
|
|
||||||
params = {"apikey": api_key}
|
|
||||||
|
|
||||||
print(Colors.OKBLUE + f"Attempting to access {source.capitalize()} at {base_url}" + Colors.ENDC)
|
# Save all custom formats to a single file in the export directory
|
||||||
|
try:
|
||||||
try:
|
with open(os.path.join(dir_path, file_name), 'w') as f:
|
||||||
response = requests.get(f"{base_url}/api/v3/qualityprofile", params=params, headers=headers)
|
json.dump(all_custom_formats, f, indent=4)
|
||||||
|
status = 'SUCCESS'
|
||||||
|
status_color = 'green'
|
||||||
|
except Exception as e:
|
||||||
|
status = 'FAILED'
|
||||||
|
status_color = 'red'
|
||||||
|
|
||||||
if response.status_code == 200:
|
print_message(f"Exported {successful_exports} custom formats to {dir_path} for {instance['name']}", 'yellow')
|
||||||
quality_profiles = response.json()
|
print()
|
||||||
print(Colors.OKGREEN + f"Found {len(quality_profiles)} quality profiles." + Colors.ENDC)
|
|
||||||
|
|
||||||
if not os.path.exists('./profiles'):
|
def create_quality_profiles_export_path(app, config):
|
||||||
os.makedirs('./profiles')
|
# Get the export path from the config
|
||||||
|
export_path = config['settings']['export_path']
|
||||||
|
|
||||||
saved_profiles = []
|
# Create a directory path for the export
|
||||||
for profile in quality_profiles:
|
dir_path = os.path.join(export_path, 'quality_profiles', app)
|
||||||
profile.pop('id', None)
|
|
||||||
profile_name = profile.get('name', 'unnamed_profile')
|
|
||||||
profile_name = sanitize_filename(profile_name)
|
|
||||||
profile_filename = f"{profile_name} ({source.capitalize()}).json"
|
|
||||||
profile_filepath = os.path.join(save_path, profile_filename)
|
|
||||||
saved_profiles.append(profile_name)
|
|
||||||
|
|
||||||
with open(profile_filepath, 'w') as file:
|
# Create the directory if it doesn't exist
|
||||||
json.dump([profile], file, indent=4)
|
os.makedirs(dir_path, exist_ok=True)
|
||||||
print_saved_items(saved_profiles, "Quality Profiles")
|
|
||||||
print(Colors.OKGREEN + f"Saved to '{profile_filepath}'" + Colors.ENDC)
|
|
||||||
print()
|
|
||||||
else:
|
|
||||||
handle_response_errors(response)
|
|
||||||
|
|
||||||
except requests.exceptions.ConnectionError:
|
return dir_path
|
||||||
print(Colors.FAIL + f"Failed to connect to {source.capitalize()}! Please check if it's running and accessible." + Colors.ENDC)
|
|
||||||
|
|
||||||
|
def export_quality_profiles(app, instances, config):
|
||||||
|
for instance in instances:
|
||||||
|
print_message(f"Exporting Quality Profiles for {app.capitalize()} : {instance['name']}", 'blue')
|
||||||
|
url = instance['base_url']
|
||||||
|
api_key = instance['api_key']
|
||||||
|
|
||||||
|
# Create the export directory
|
||||||
|
dir_path = create_quality_profiles_export_path(app, config)
|
||||||
|
|
||||||
|
# Assuming 'qualityprofile' is the valid resource_type for the API
|
||||||
|
response = make_request('get', url, api_key, 'qualityprofile')
|
||||||
|
|
||||||
|
successful_exports = 0 # Counter for successful exports
|
||||||
|
|
||||||
|
# Scrub the JSON data and save each quality profile in its own file
|
||||||
|
for quality_profile in response:
|
||||||
|
# Remove the 'id' field
|
||||||
|
quality_profile.pop('id', None)
|
||||||
|
|
||||||
|
# Create a file name from the quality profile name and app
|
||||||
|
file_name = f"{quality_profile['name']} ({app.lower()} - {instance['name'].lower()}).json"
|
||||||
|
file_name = re.sub(r'[\\/*?:"<>|]', '', file_name) # Remove invalid characters
|
||||||
|
|
||||||
|
# Save the quality profile to a file in the export directory
|
||||||
|
try:
|
||||||
|
with open(os.path.join(dir_path, file_name), 'w') as f:
|
||||||
|
json.dump([quality_profile], f, indent=4) # Wrap quality_profile in a list
|
||||||
|
status = 'SUCCESS'
|
||||||
|
status_color = 'green'
|
||||||
|
except Exception as e:
|
||||||
|
status = 'FAILED'
|
||||||
|
status_color = 'red'
|
||||||
|
if status == 'SUCCESS':
|
||||||
|
successful_exports += 1 # Increment the counter if the export was successful
|
||||||
|
|
||||||
|
print_message(f"Exported {successful_exports} quality profiles to {dir_path} for {instance['name']}", 'yellow')
|
||||||
|
print()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
app = get_app_choice()
|
||||||
|
instances = get_instance_choice(app)
|
||||||
|
config = load_config()
|
||||||
|
|
||||||
|
export_custom_formats(app, instances, config)
|
||||||
|
export_quality_profiles(app, instances, config)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
user_choice = get_user_choice()
|
main()
|
||||||
export_choice = get_export_choice()
|
|
||||||
|
|
||||||
if export_choice in ["1", "3"]:
|
|
||||||
export_cf(user_choice)
|
|
||||||
if export_choice in ["2", "3"]:
|
|
||||||
export_qf(user_choice)
|
|
||||||
131
helpers.py
Normal file
131
helpers.py
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
import yaml
|
||||||
|
import json
|
||||||
|
import requests
|
||||||
|
from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
|
||||||
|
import json
|
||||||
|
|
||||||
|
class Colors:
|
||||||
|
GREEN = '\033[92m'
|
||||||
|
RED = '\033[91m'
|
||||||
|
YELLOW = '\033[93m'
|
||||||
|
BLUE = '\033[94m'
|
||||||
|
PURPLE = '\033[95m'
|
||||||
|
ENDC = '\033[0m'
|
||||||
|
|
||||||
|
class Apps:
|
||||||
|
APP_CHOICES = {
|
||||||
|
"1": "radarr",
|
||||||
|
"2": "sonarr",
|
||||||
|
# Add more apps here as needed
|
||||||
|
}
|
||||||
|
|
||||||
|
def print_message(message, message_type='', newline=True):
|
||||||
|
color = Colors.ENDC # default color
|
||||||
|
message_type = message_type.lower()
|
||||||
|
|
||||||
|
if message_type == 'green':
|
||||||
|
color = Colors.GREEN
|
||||||
|
elif message_type == 'red':
|
||||||
|
color = Colors.RED
|
||||||
|
elif message_type == 'yellow':
|
||||||
|
color = Colors.YELLOW
|
||||||
|
elif message_type == 'blue':
|
||||||
|
color = Colors.BLUE
|
||||||
|
elif message_type == 'purple':
|
||||||
|
color = Colors.PURPLE
|
||||||
|
|
||||||
|
if newline:
|
||||||
|
print(color + message + Colors.ENDC)
|
||||||
|
else:
|
||||||
|
print(color + message + Colors.ENDC, end='')
|
||||||
|
|
||||||
|
|
||||||
|
def load_config():
|
||||||
|
with open('config.yml', 'r') as config_file:
|
||||||
|
config = yaml.safe_load(config_file)
|
||||||
|
return config
|
||||||
|
|
||||||
|
def get_app_choice():
|
||||||
|
print_message("Select your app of choice", "blue")
|
||||||
|
# Dynamically generate the app selection menu
|
||||||
|
app_menu = "\n".join([f"{key}. {value}" for key, value in Apps.APP_CHOICES.items()])
|
||||||
|
print_message(app_menu)
|
||||||
|
print_message("Enter your choice: ", "blue")
|
||||||
|
app_choice = input().strip()
|
||||||
|
|
||||||
|
while app_choice not in Apps.APP_CHOICES.keys():
|
||||||
|
print_message("Invalid input. Please enter a valid choice.", "red")
|
||||||
|
app_choice = input().strip()
|
||||||
|
|
||||||
|
app = Apps.APP_CHOICES[app_choice]
|
||||||
|
|
||||||
|
return app
|
||||||
|
|
||||||
|
def get_instance_choice(app):
|
||||||
|
config = load_config()
|
||||||
|
app_instances = config['instances'].get(app.lower(), [])
|
||||||
|
|
||||||
|
print_message(f"Select your {app.capitalize()} instance", "blue")
|
||||||
|
# Display instances and prompt for choice
|
||||||
|
for i, instance in enumerate(app_instances, start=1):
|
||||||
|
print_message(f"{i}. {app.capitalize()} ({instance['name']})")
|
||||||
|
|
||||||
|
print_message("Choose an instance by number, multiple numbers separated by commas or type 'all' for all instances: ", "blue")
|
||||||
|
choice = input().strip()
|
||||||
|
print()
|
||||||
|
selected_instances = []
|
||||||
|
|
||||||
|
if choice.lower() == 'all':
|
||||||
|
selected_instances = app_instances
|
||||||
|
else:
|
||||||
|
choices = choice.split(',')
|
||||||
|
for choice in choices:
|
||||||
|
choice = choice.strip() # remove any leading/trailing whitespace
|
||||||
|
while not choice.isdigit() or int(choice) < 1 or int(choice) > len(app_instances):
|
||||||
|
print_message("Invalid input. Please select a valid number.", "warning")
|
||||||
|
choice = input().strip()
|
||||||
|
selected_instance = app_instances[int(choice) - 1]
|
||||||
|
selected_instances.append(selected_instance)
|
||||||
|
|
||||||
|
return selected_instances
|
||||||
|
|
||||||
|
def make_request(request_type, url, api_key, resource_type, json_payload=None):
|
||||||
|
full_url = f"{url}/api/v3/{resource_type}"
|
||||||
|
|
||||||
|
headers = {"X-Api-Key": api_key}
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Make the appropriate request based on the request_type
|
||||||
|
if request_type.lower() == 'get':
|
||||||
|
response = requests.get(full_url, headers=headers, json=json_payload)
|
||||||
|
elif request_type.lower() == 'post':
|
||||||
|
response = requests.post(full_url, headers=headers, json=json_payload)
|
||||||
|
elif request_type.lower() == 'put':
|
||||||
|
response = requests.put(full_url, headers=headers, json=json_payload)
|
||||||
|
elif request_type.lower() == 'delete':
|
||||||
|
response = requests.delete(full_url, headers=headers)
|
||||||
|
return response.status_code
|
||||||
|
elif request_type.lower() == 'patch':
|
||||||
|
response = requests.patch(full_url, headers=headers, json=json_payload)
|
||||||
|
else:
|
||||||
|
raise ValueError("Unsupported request type provided.")
|
||||||
|
|
||||||
|
# Process response
|
||||||
|
if response.status_code in [200, 201, 202]:
|
||||||
|
try:
|
||||||
|
return response.json()
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print_message("Failed to decode JSON response.", "red")
|
||||||
|
return None
|
||||||
|
elif response.status_code == 401:
|
||||||
|
print_message("Unauthorized. Check your API key.", "red")
|
||||||
|
elif response.status_code == 409:
|
||||||
|
print_message("Conflict detected. The requested action could not be completed.", "red")
|
||||||
|
else:
|
||||||
|
print_message(f"HTTP Error {response.status_code}.", "red")
|
||||||
|
except (ConnectionError, Timeout, TooManyRedirects) as e:
|
||||||
|
# Update the message here to suggest checking the application's accessibility
|
||||||
|
print_message("Network error. Make sure the application is running and accessible.", "red")
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
384
importarr.py
384
importarr.py
@@ -1,219 +1,211 @@
|
|||||||
import json
|
from helpers import *
|
||||||
import requests
|
|
||||||
import os
|
import os
|
||||||
|
import fnmatch
|
||||||
|
import json
|
||||||
|
|
||||||
# ANSI escape sequences for colors
|
def get_custom_formats(app):
|
||||||
class Colors:
|
config = load_config()
|
||||||
HEADER = '\033[95m'
|
import_path = f"{config['settings']['import_path']}/custom_formats/{app.lower()}" # Adjusted path
|
||||||
OKBLUE = '\033[94m'
|
for file in os.listdir(import_path):
|
||||||
OKGREEN = '\033[92m'
|
if fnmatch.fnmatch(file, f'*{app}*'):
|
||||||
WARNING = '\033[93m'
|
return file
|
||||||
FAIL = '\033[91m'
|
return None
|
||||||
ENDC = '\033[0m'
|
|
||||||
BOLD = '\033[1m'
|
|
||||||
UNDERLINE = '\033[4m'
|
|
||||||
|
|
||||||
# Load configuration for main app
|
|
||||||
with open('config.json', 'r') as config_file:
|
|
||||||
config = json.load(config_file)
|
|
||||||
|
|
||||||
def print_success(message):
|
|
||||||
print(Colors.OKGREEN + message + Colors.ENDC)
|
|
||||||
|
|
||||||
def print_error(message):
|
|
||||||
print(Colors.FAIL + message + Colors.ENDC)
|
|
||||||
|
|
||||||
def print_connection_error():
|
|
||||||
print(Colors.FAIL + "Failed to connect to the service! Please check if it's running and accessible." + Colors.ENDC)
|
|
||||||
|
|
||||||
def get_user_choice():
|
|
||||||
choice = input("Enter the app you want to import to (radarr/sonarr): ").lower()
|
|
||||||
while choice not in ["radarr", "sonarr"]:
|
|
||||||
print_error("Invalid input. Please enter either 'radarr' or 'sonarr'.")
|
|
||||||
choice = input("Enter the source (radarr/sonarr): ").lower()
|
|
||||||
return choice
|
|
||||||
|
|
||||||
def get_import_choice():
|
|
||||||
print()
|
|
||||||
print(Colors.HEADER + "Choose what to import:" + Colors.ENDC)
|
|
||||||
print("1. Custom Formats")
|
|
||||||
print("2. Quality Profiles")
|
|
||||||
choice = input("Enter your choice (1/2): ").strip()
|
|
||||||
while choice not in ["1", "2"]:
|
|
||||||
print_error("Invalid input. Please enter 1 or 2.")
|
|
||||||
choice = input("Enter your choice (1/2): ").strip()
|
|
||||||
return choice
|
|
||||||
|
|
||||||
def get_app_config(source):
|
|
||||||
return config['master'][source]
|
|
||||||
|
|
||||||
def select_file(directory):
|
|
||||||
files = [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))]
|
|
||||||
print()
|
|
||||||
print(Colors.OKBLUE + "Available files:" + Colors.ENDC)
|
|
||||||
for i, file in enumerate(files, 1):
|
|
||||||
print(f"{i}. {file}")
|
|
||||||
choice = int(input("Select a file to import: "))
|
|
||||||
return files[choice - 1]
|
|
||||||
|
|
||||||
def import_custom_formats(source_config, import_path='./custom_formats', auto_select_file=False):
|
|
||||||
headers = {"X-Api-Key": source_config['api_key']}
|
|
||||||
get_url = f"{source_config['base_url']}/api/v3/customformat"
|
|
||||||
try:
|
|
||||||
response = requests.get(get_url, headers=headers)
|
|
||||||
if response.status_code == 200:
|
|
||||||
existing_formats = response.json()
|
|
||||||
existing_names_to_id = {format['name']: format['id'] for format in existing_formats}
|
|
||||||
|
|
||||||
files = os.listdir(import_path)
|
|
||||||
if auto_select_file and len(files) == 1:
|
|
||||||
selected_file = files[0]
|
|
||||||
else:
|
|
||||||
selected_file = select_file(import_path)
|
|
||||||
|
|
||||||
added_count, updated_count = 0, 0
|
|
||||||
|
|
||||||
with open(os.path.join(import_path, selected_file), 'r') as import_file:
|
|
||||||
import_formats = json.load(import_file)
|
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
for format in import_formats:
|
|
||||||
format_name = format['name']
|
|
||||||
if format_name in existing_names_to_id:
|
|
||||||
format_id = existing_names_to_id[format_name]
|
|
||||||
put_url = f"{source_config['base_url']}/api/v3/customformat/{format_id}"
|
|
||||||
response = requests.put(put_url, json=format, headers=headers)
|
|
||||||
if response.status_code in [200, 201, 202]:
|
|
||||||
print(Colors.WARNING + f"Updating custom format '{format_name}': " + Colors.ENDC, end='')
|
|
||||||
print_success("SUCCESS")
|
|
||||||
updated_count += 1
|
|
||||||
else:
|
|
||||||
print_error(f"Updating custom format '{format_name}': FAIL")
|
|
||||||
print(response.content.decode())
|
|
||||||
|
|
||||||
else:
|
|
||||||
post_url = f"{source_config['base_url']}/api/v3/customformat"
|
|
||||||
response = requests.post(post_url, json=format, headers=headers)
|
|
||||||
if response.status_code in [200, 201]:
|
|
||||||
print(Colors.OKBLUE + f"Adding custom format '{format_name}': " + Colors.ENDC, end='')
|
|
||||||
print_success("SUCCESS")
|
|
||||||
added_count += 1
|
|
||||||
else:
|
|
||||||
print_error(f"Adding custom format '{format_name}': FAIL")
|
|
||||||
print(response.content.decode())
|
|
||||||
|
|
||||||
print()
|
|
||||||
print_success(f"Successfully added {added_count} custom formats, updated {updated_count} custom formats.")
|
|
||||||
|
|
||||||
|
def process_format(format, existing_names_to_id, base_url, api_key):
|
||||||
|
format_name = format['name']
|
||||||
|
if format_name in existing_names_to_id:
|
||||||
|
format_id = existing_names_to_id[format_name]
|
||||||
|
response = make_request('put', base_url, api_key, f'customformat/{format_id}', format)
|
||||||
|
if response is not None:
|
||||||
|
print_message(f"Updating custom format '{format_name}'", "yellow", newline=False)
|
||||||
|
print_message(" : SUCCESS", "green")
|
||||||
|
return 0, 1
|
||||||
else:
|
else:
|
||||||
print_error(f"Failed to retrieve existing custom formats from {get_url}! (HTTP {response.status_code})")
|
print_message(f"Updating custom format '{format_name}'", "yellow", newline=False)
|
||||||
print(response.content.decode())
|
print_message(" : FAIL", "red", newline=False)
|
||||||
|
else:
|
||||||
|
response = make_request('post', base_url, api_key, 'customformat', format)
|
||||||
|
if response is not None:
|
||||||
|
print_message(f"Adding custom format '{format_name}'", "blue", newline=False)
|
||||||
|
print_message(" : SUCCESS", "green")
|
||||||
|
return 1, 0
|
||||||
|
else:
|
||||||
|
print_message(f"Adding custom format '{format_name}'", "blue", newline=False)
|
||||||
|
print_message(" : FAIL", "red", newline=False)
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
except requests.exceptions.ConnectionError:
|
def import_custom_formats(app, instances):
|
||||||
print_connection_error()
|
|
||||||
|
|
||||||
def import_quality_profiles(source_config, import_path='./profiles'):
|
config = load_config()
|
||||||
headers = {"X-Api-Key": source_config['api_key']}
|
|
||||||
try:
|
|
||||||
cf_import_sync(source_config)
|
|
||||||
|
|
||||||
profile_dir = import_path
|
for instance in instances:
|
||||||
profiles = [f for f in os.listdir(profile_dir) if f.endswith('.json')]
|
api_key = instance['api_key']
|
||||||
|
base_url = instance['base_url']
|
||||||
|
|
||||||
|
existing_formats = make_request('get', base_url, api_key, 'customformat')
|
||||||
|
existing_names_to_id = {format['name']: format['id'] for format in existing_formats}
|
||||||
|
|
||||||
|
app_file = get_custom_formats(app)
|
||||||
|
if app_file is None:
|
||||||
|
print_message(f"No file found for app: {app}", "red")
|
||||||
|
continue
|
||||||
|
|
||||||
|
added_count, updated_count = 0, 0
|
||||||
|
with open(f"{config['settings']['import_path']}/custom_formats/{app.lower()}/{app_file}", 'r') as import_file:
|
||||||
|
import_formats = json.load(import_file)
|
||||||
|
|
||||||
|
print_message(f"Importing custom formats to {app.capitalize()} : {instance['name']}", "purple")
|
||||||
|
print()
|
||||||
|
|
||||||
|
for format in import_formats:
|
||||||
|
added, updated = process_format(format, existing_names_to_id, base_url, api_key)
|
||||||
|
added_count += added
|
||||||
|
updated_count += updated
|
||||||
|
|
||||||
print()
|
print()
|
||||||
print(Colors.HEADER + "Available Profiles:" + Colors.ENDC)
|
print_message(
|
||||||
for i, profile in enumerate(profiles, 1):
|
f"Successfully added {added_count} custom formats, "
|
||||||
print(f"{i}. {profile}")
|
f"updated {updated_count} custom formats.",
|
||||||
print(f"{len(profiles) + 1}. Import all profiles")
|
"purple"
|
||||||
|
)
|
||||||
print()
|
print()
|
||||||
selection = input("Please enter the number of the profile you want to import (or enter " + str(len(profiles) + 1) + " to import all): ")
|
|
||||||
selected_files = []
|
def get_profiles(app):
|
||||||
|
config = load_config()
|
||||||
|
import_path = f"{config['settings']['import_path']}/quality_profiles/{app.lower()}" # Adjusted path
|
||||||
|
matching_files = [] # Create an empty list to hold matching files
|
||||||
|
for file in os.listdir(import_path):
|
||||||
|
if fnmatch.fnmatch(file, f'*{app}*'):
|
||||||
|
matching_files.append(file) # Add matching file to the list
|
||||||
|
return matching_files # Return the list of matching files
|
||||||
|
|
||||||
|
def get_existing_profiles(base_url, api_key):
|
||||||
|
resource_type = 'qualityprofile'
|
||||||
|
existing_profiles = make_request('get', base_url, api_key, resource_type)
|
||||||
|
|
||||||
|
|
||||||
|
return {profile['name']: profile for profile in existing_profiles} if existing_profiles else {}
|
||||||
|
|
||||||
|
def cf_import_sync(instances):
|
||||||
|
for instance in instances:
|
||||||
|
api_key = instance['api_key']
|
||||||
|
base_url = instance['base_url']
|
||||||
|
resource_type = 'customformat'
|
||||||
|
response = make_request('get', base_url, api_key, resource_type)
|
||||||
|
|
||||||
|
if response:
|
||||||
|
instance['custom_formats'] = {format['name']: format['id'] for format in response}
|
||||||
|
else:
|
||||||
|
print_message("No custom formats found for this instance.", "purple")
|
||||||
|
print()
|
||||||
|
|
||||||
|
def user_select_profiles(profiles):
|
||||||
|
print_message("Available profiles:", "purple")
|
||||||
|
for idx, profile in enumerate(profiles, start=1):
|
||||||
|
print(f"{idx}. {profile}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Display prompt message
|
||||||
|
print_message("Enter the numbers of the profiles you want to import separated by commas, or type 'all' to import all profiles: ", "blue", newline=False)
|
||||||
|
print()
|
||||||
|
user_input = input().strip()
|
||||||
|
|
||||||
|
if user_input.lower() == 'all':
|
||||||
|
return profiles # Return all profiles if 'all' is selected
|
||||||
|
|
||||||
|
selected_profiles = []
|
||||||
try:
|
try:
|
||||||
selection = int(selection)
|
selected_indices = [int(index.strip()) for index in user_input.split(',')]
|
||||||
if selection == len(profiles) + 1:
|
for index in selected_indices:
|
||||||
selected_files = profiles
|
if 1 <= index <= len(profiles):
|
||||||
else:
|
selected_profiles.append(profiles[index - 1])
|
||||||
selected_files = [profiles[selection - 1]]
|
else:
|
||||||
except (ValueError, IndexError):
|
raise ValueError(f"Invalid selection: {index}. Please enter valid numbers.") # Raise an error to trigger except block
|
||||||
print_error("Invalid selection, please enter a valid number.")
|
return selected_profiles # Return the selected profiles if all inputs are valid
|
||||||
return
|
except ValueError as e:
|
||||||
|
print_message(str(e), "red") # Display error message in red
|
||||||
|
|
||||||
for selected_file in selected_files:
|
|
||||||
with open(os.path.join(profile_dir, selected_file), 'r') as file:
|
|
||||||
|
def process_profile(profile, base_url, api_key, custom_formats, existing_profiles):
|
||||||
|
profile_name = profile.get('name')
|
||||||
|
existing_profile = existing_profiles.get(profile_name)
|
||||||
|
|
||||||
|
# Update or add custom format items as needed
|
||||||
|
if 'formatItems' in profile:
|
||||||
|
for format_item in profile['formatItems']:
|
||||||
|
format_name = format_item.get('name')
|
||||||
|
if format_name and format_name in custom_formats:
|
||||||
|
format_item['format'] = custom_formats[format_name]
|
||||||
|
|
||||||
|
for format_name, format_id in custom_formats.items():
|
||||||
|
if format_name not in {item.get('name') for item in profile.get('formatItems', [])}:
|
||||||
|
profile.setdefault('formatItems', []).append({
|
||||||
|
"format": format_id,
|
||||||
|
"name": format_name,
|
||||||
|
"score": 0
|
||||||
|
})
|
||||||
|
|
||||||
|
if existing_profile:
|
||||||
|
profile['id'] = existing_profile['id']
|
||||||
|
action = "Updating"
|
||||||
|
action_color = "yellow"
|
||||||
|
resource_type = f"qualityprofile/{profile['id']}"
|
||||||
|
else:
|
||||||
|
action = "Adding"
|
||||||
|
action_color = "blue"
|
||||||
|
resource_type = "qualityprofile"
|
||||||
|
|
||||||
|
response = make_request('put' if existing_profile else 'post', base_url, api_key, resource_type, profile)
|
||||||
|
|
||||||
|
# Print the action statement in blue for Adding and yellow for Updating
|
||||||
|
print_message(f"{action} '{profile_name}' quality profile", action_color, newline=False)
|
||||||
|
|
||||||
|
# Determine the status and print the status in green (OK) or red (FAIL)
|
||||||
|
if response:
|
||||||
|
print_message(" : SUCCESS", "green")
|
||||||
|
else:
|
||||||
|
print_message(" : FAIL", "red")
|
||||||
|
|
||||||
|
def import_quality_profiles(app, instances):
|
||||||
|
|
||||||
|
config = load_config()
|
||||||
|
|
||||||
|
cf_import_sync(instances)
|
||||||
|
|
||||||
|
all_profiles = get_profiles(app)
|
||||||
|
selected_profiles_names = user_select_profiles(all_profiles)
|
||||||
|
|
||||||
|
for instance in instances:
|
||||||
|
base_url = instance['base_url']
|
||||||
|
api_key = instance['api_key']
|
||||||
|
custom_formats = instance.get('custom_formats', {})
|
||||||
|
existing_profiles = get_existing_profiles(base_url, api_key) # Retrieve existing profiles
|
||||||
|
|
||||||
|
print_message(f"Importing Quality Profiles to {app} : {instance['name']}", "purple")
|
||||||
|
print()
|
||||||
|
|
||||||
|
for profile_file in selected_profiles_names:
|
||||||
|
with open(f"{config['settings']['import_path']}/quality_profiles/{app.lower()}/{profile_file}", 'r') as file:
|
||||||
try:
|
try:
|
||||||
quality_profiles = json.load(file)
|
quality_profiles = json.load(file)
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
print_error(f"Error loading selected profile: {e}")
|
print_message(f"Error loading selected profile: {e}", "red")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for profile in quality_profiles:
|
for profile in quality_profiles:
|
||||||
existing_format_names = set()
|
process_profile(profile, base_url, api_key, custom_formats, existing_profiles)
|
||||||
if 'formatItems' in profile:
|
|
||||||
for format_item in profile['formatItems']:
|
print()
|
||||||
format_name = format_item.get('name')
|
|
||||||
if format_name:
|
|
||||||
existing_format_names.add(format_name)
|
|
||||||
if format_name in source_config['custom_formats']:
|
|
||||||
format_item['format'] = source_config['custom_formats'][format_name]
|
|
||||||
|
|
||||||
for format_name, format_id in source_config['custom_formats'].items():
|
def main():
|
||||||
if format_name not in existing_format_names:
|
app = get_app_choice()
|
||||||
profile.setdefault('formatItems', []).append({
|
instances = get_instance_choice(app)
|
||||||
"format": format_id,
|
|
||||||
"name": format_name,
|
|
||||||
"score": 0
|
|
||||||
})
|
|
||||||
|
|
||||||
post_url = f"{source_config['base_url']}/api/v3/qualityprofile"
|
|
||||||
response = requests.post(post_url, json=profile, headers=headers)
|
|
||||||
|
|
||||||
if response.status_code in [200, 201]:
|
|
||||||
print_success(f"Successfully added Quality Profile {profile['name']}")
|
|
||||||
elif response.status_code == 409:
|
|
||||||
print_error(f"Failed to add Quality Profile {profile['name']} due to a naming conflict. Quality profile names must be unique. (HTTP {response.status_code})")
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
errors = response.json()
|
|
||||||
message = errors.get("message", "No Message Provided")
|
|
||||||
print_error(f"Failed to add Quality Profile {profile['name']}! (HTTP {response.status_code})")
|
|
||||||
print(message)
|
|
||||||
except json.JSONDecodeError:
|
|
||||||
print_error("Failed to parse error message:")
|
|
||||||
print(response.text)
|
|
||||||
|
|
||||||
except requests.exceptions.ConnectionError:
|
|
||||||
print_connection_error()
|
|
||||||
|
|
||||||
|
|
||||||
def cf_import_sync(source_config):
|
|
||||||
headers = {"X-Api-Key": source_config['api_key']}
|
|
||||||
custom_format_url = f"{source_config['base_url']}/api/v3/customformat"
|
|
||||||
try:
|
|
||||||
response = requests.get(custom_format_url, headers=headers)
|
|
||||||
if response.status_code == 200:
|
|
||||||
data = response.json()
|
|
||||||
source_config['custom_formats'] = {format['name']: format['id'] for format in data}
|
|
||||||
elif response.status_code == 401:
|
|
||||||
print_error("Authentication error: Invalid API key. Terminating program.")
|
|
||||||
exit(1)
|
|
||||||
else:
|
|
||||||
print_error(f"Failed to retrieve custom formats! (HTTP {response.status_code})")
|
|
||||||
print(response.content.decode())
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
except requests.exceptions.ConnectionError:
|
|
||||||
print_connection_error()
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
|
import_custom_formats(app, instances)
|
||||||
|
import_quality_profiles(app, instances)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
user_choice = get_user_choice()
|
main()
|
||||||
source_config = get_app_config(user_choice)
|
|
||||||
import_choice = get_import_choice()
|
|
||||||
|
|
||||||
if import_choice == "1":
|
|
||||||
import_custom_formats(source_config)
|
|
||||||
elif import_choice == "2":
|
|
||||||
import_quality_profiles(source_config)
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1063
imports/quality_profiles/radarr/1080p Optimal (radarr - master).json
Normal file
1063
imports/quality_profiles/radarr/1080p Optimal (radarr - master).json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Transparent - Remux Fallback",
|
"name": "1080p Transparent (Double Grab)",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 1002,
|
"cutoff": 1002,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -66,6 +66,17 @@
|
|||||||
"allowed": false,
|
"allowed": false,
|
||||||
"id": 1001
|
"id": 1001
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720,
|
||||||
|
"modifier": "none"
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
@@ -226,17 +237,6 @@
|
|||||||
{
|
{
|
||||||
"name": "Transparent Capable",
|
"name": "Transparent Capable",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
|
||||||
"quality": {
|
|
||||||
"id": 6,
|
|
||||||
"name": "Bluray-720p",
|
|
||||||
"source": "bluray",
|
|
||||||
"resolution": 720,
|
|
||||||
"modifier": "none"
|
|
||||||
},
|
|
||||||
"items": [],
|
|
||||||
"allowed": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 3,
|
"id": 3,
|
||||||
@@ -248,17 +248,6 @@
|
|||||||
"items": [],
|
"items": [],
|
||||||
"allowed": true
|
"allowed": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"quality": {
|
|
||||||
"id": 30,
|
|
||||||
"name": "Remux-1080p",
|
|
||||||
"source": "bluray",
|
|
||||||
"resolution": 1080,
|
|
||||||
"modifier": "remux"
|
|
||||||
},
|
|
||||||
"items": [],
|
|
||||||
"allowed": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 15,
|
"id": 15,
|
||||||
@@ -285,6 +274,17 @@
|
|||||||
"allowed": true,
|
"allowed": true,
|
||||||
"id": 1002
|
"id": 1002
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 30,
|
||||||
|
"name": "Remux-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080,
|
||||||
|
"modifier": "remux"
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 16,
|
"id": 16,
|
||||||
@@ -364,17 +364,67 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 500,
|
"cutoffFormatScore": 140,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 344,
|
||||||
|
"name": "jennaortegaUHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 342,
|
||||||
|
"name": "Freeleech25",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 341,
|
||||||
|
"name": "Freeleech50",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 340,
|
||||||
|
"name": "Freeleech75",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 339,
|
||||||
|
"name": "Freeleech100",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 338,
|
||||||
|
"name": "TEST FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 337,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 336,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 335,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 334,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 333,
|
"format": 333,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 331,
|
"format": 331,
|
||||||
"name": "Golden Popcorn 720p",
|
"name": "Golden Popcorn 720p",
|
||||||
"score": 120
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 330,
|
"format": 330,
|
||||||
@@ -419,7 +469,7 @@
|
|||||||
{
|
{
|
||||||
"format": 322,
|
"format": 322,
|
||||||
"name": "Dolby Vision w/out Fallback",
|
"name": "Dolby Vision w/out Fallback",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 321,
|
"format": 321,
|
||||||
@@ -434,27 +484,27 @@
|
|||||||
{
|
{
|
||||||
"format": 317,
|
"format": 317,
|
||||||
"name": "TrueHD (Missing)",
|
"name": "TrueHD (Missing)",
|
||||||
"score": 20
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 316,
|
"format": 316,
|
||||||
"name": "HDR10 (Missing)",
|
"name": "HDR10 (Missing)",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 315,
|
"format": 315,
|
||||||
"name": "HDR10",
|
"name": "HDR10",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 314,
|
"format": 314,
|
||||||
"name": "Dolby Vision",
|
"name": "Dolby Vision",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 312,
|
"format": 312,
|
||||||
"name": "HDR10+",
|
"name": "HDR10+",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 308,
|
"format": 308,
|
||||||
@@ -534,7 +584,7 @@
|
|||||||
{
|
{
|
||||||
"format": 290,
|
"format": 290,
|
||||||
"name": "ROKU",
|
"name": "ROKU",
|
||||||
"score": 30
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 289,
|
"format": 289,
|
||||||
@@ -574,12 +624,12 @@
|
|||||||
{
|
{
|
||||||
"format": 281,
|
"format": 281,
|
||||||
"name": "TrueHD",
|
"name": "TrueHD",
|
||||||
"score": 20
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 280,
|
"format": 280,
|
||||||
"name": "DTS-X",
|
"name": "DTS-X",
|
||||||
"score": 30
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 279,
|
"format": 279,
|
||||||
@@ -589,7 +639,7 @@
|
|||||||
{
|
{
|
||||||
"format": 278,
|
"format": 278,
|
||||||
"name": "DTS-HD MA",
|
"name": "DTS-HD MA",
|
||||||
"score": 10
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 276,
|
"format": 276,
|
||||||
@@ -609,12 +659,12 @@
|
|||||||
{
|
{
|
||||||
"format": 273,
|
"format": 273,
|
||||||
"name": "IMAX",
|
"name": "IMAX",
|
||||||
"score": 10
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 272,
|
"format": 272,
|
||||||
"name": "ATMOS",
|
"name": "ATMOS",
|
||||||
"score": 5
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 271,
|
"format": 271,
|
||||||
@@ -639,37 +689,37 @@
|
|||||||
{
|
{
|
||||||
"format": 267,
|
"format": 267,
|
||||||
"name": "Paramount+",
|
"name": "Paramount+",
|
||||||
"score": 30
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 266,
|
"format": 266,
|
||||||
"name": "Peacock TV",
|
"name": "Peacock TV",
|
||||||
"score": 30
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 265,
|
"format": 265,
|
||||||
"name": "Hulu",
|
"name": "Hulu",
|
||||||
"score": 30
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 264,
|
"format": 264,
|
||||||
"name": "Netflix",
|
"name": "Netflix",
|
||||||
"score": 40
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 263,
|
"format": 263,
|
||||||
"name": "HBO Max",
|
"name": "HBO Max",
|
||||||
"score": 40
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 262,
|
"format": 262,
|
||||||
"name": "Disney+",
|
"name": "Disney+",
|
||||||
"score": 40
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 261,
|
"format": 261,
|
||||||
"name": "Apple TV+",
|
"name": "Apple TV+",
|
||||||
"score": 50
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 260,
|
"format": 260,
|
||||||
@@ -679,12 +729,12 @@
|
|||||||
{
|
{
|
||||||
"format": 259,
|
"format": 259,
|
||||||
"name": "Amazon Prime",
|
"name": "Amazon Prime",
|
||||||
"score": 50
|
"score": 60
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 258,
|
"format": 258,
|
||||||
"name": "REMUX",
|
"name": "REMUX",
|
||||||
"score": 40
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 256,
|
"format": 256,
|
||||||
@@ -709,7 +759,7 @@
|
|||||||
{
|
{
|
||||||
"format": 252,
|
"format": 252,
|
||||||
"name": "720p",
|
"name": "720p",
|
||||||
"score": -120
|
"score": -10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 250,
|
"format": 250,
|
||||||
@@ -719,7 +769,7 @@
|
|||||||
{
|
{
|
||||||
"format": 249,
|
"format": 249,
|
||||||
"name": "BHDStudio",
|
"name": "BHDStudio",
|
||||||
"score": 30
|
"score": 50
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 248,
|
"format": 248,
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Transparent - HD Fallback",
|
"name": "1080p Transparent (Single Grab)",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 1002,
|
"cutoff": 1002,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -66,6 +66,17 @@
|
|||||||
"allowed": false,
|
"allowed": false,
|
||||||
"id": 1001
|
"id": 1001
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720,
|
||||||
|
"modifier": "none"
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 1,
|
"id": 1,
|
||||||
@@ -161,17 +172,6 @@
|
|||||||
"items": [],
|
"items": [],
|
||||||
"allowed": true
|
"allowed": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"quality": {
|
|
||||||
"id": 9,
|
|
||||||
"name": "HDTV-1080p",
|
|
||||||
"source": "tv",
|
|
||||||
"resolution": 1080,
|
|
||||||
"modifier": "none"
|
|
||||||
},
|
|
||||||
"items": [],
|
|
||||||
"allowed": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "DVD",
|
"name": "DVD",
|
||||||
"items": [
|
"items": [
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
"modifier": "screener"
|
"modifier": "screener"
|
||||||
},
|
},
|
||||||
"items": [],
|
"items": [],
|
||||||
"allowed": true
|
"allowed": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
"modifier": "none"
|
"modifier": "none"
|
||||||
},
|
},
|
||||||
"items": [],
|
"items": [],
|
||||||
"allowed": true
|
"allowed": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
@@ -223,6 +223,17 @@
|
|||||||
"allowed": true,
|
"allowed": true,
|
||||||
"id": 1003
|
"id": 1003
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "tv",
|
||||||
|
"resolution": 1080,
|
||||||
|
"modifier": "none"
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Transparent Capable",
|
"name": "Transparent Capable",
|
||||||
"items": [
|
"items": [
|
||||||
@@ -237,17 +248,6 @@
|
|||||||
"items": [],
|
"items": [],
|
||||||
"allowed": true
|
"allowed": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"quality": {
|
|
||||||
"id": 6,
|
|
||||||
"name": "Bluray-720p",
|
|
||||||
"source": "bluray",
|
|
||||||
"resolution": 720,
|
|
||||||
"modifier": "none"
|
|
||||||
},
|
|
||||||
"items": [],
|
|
||||||
"allowed": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"quality": {
|
"quality": {
|
||||||
"id": 15,
|
"id": 15,
|
||||||
@@ -364,17 +364,67 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 500,
|
"cutoffFormatScore": 0,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 344,
|
||||||
|
"name": "jennaortegaUHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 342,
|
||||||
|
"name": "Freeleech25",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 341,
|
||||||
|
"name": "Freeleech50",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 340,
|
||||||
|
"name": "Freeleech75",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 339,
|
||||||
|
"name": "Freeleech100",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 338,
|
||||||
|
"name": "TEST FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 337,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 336,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 335,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 334,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 333,
|
"format": 333,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 331,
|
"format": 331,
|
||||||
"name": "Golden Popcorn 720p",
|
"name": "Golden Popcorn 720p",
|
||||||
"score": 120
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 330,
|
"format": 330,
|
||||||
@@ -419,7 +469,7 @@
|
|||||||
{
|
{
|
||||||
"format": 322,
|
"format": 322,
|
||||||
"name": "Dolby Vision w/out Fallback",
|
"name": "Dolby Vision w/out Fallback",
|
||||||
"score": -99999
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 321,
|
"format": 321,
|
||||||
@@ -434,7 +484,7 @@
|
|||||||
{
|
{
|
||||||
"format": 317,
|
"format": 317,
|
||||||
"name": "TrueHD (Missing)",
|
"name": "TrueHD (Missing)",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 316,
|
"format": 316,
|
||||||
@@ -449,7 +499,7 @@
|
|||||||
{
|
{
|
||||||
"format": 314,
|
"format": 314,
|
||||||
"name": "Dolby Vision",
|
"name": "Dolby Vision",
|
||||||
"score": -99999
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 312,
|
"format": 312,
|
||||||
@@ -474,7 +524,7 @@
|
|||||||
{
|
{
|
||||||
"format": 303,
|
"format": 303,
|
||||||
"name": "mHD",
|
"name": "mHD",
|
||||||
"score": -999999
|
"score": -99999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 302,
|
"format": 302,
|
||||||
@@ -574,12 +624,12 @@
|
|||||||
{
|
{
|
||||||
"format": 281,
|
"format": 281,
|
||||||
"name": "TrueHD",
|
"name": "TrueHD",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 280,
|
"format": 280,
|
||||||
"name": "DTS-X",
|
"name": "DTS-X",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 279,
|
"format": 279,
|
||||||
@@ -589,7 +639,7 @@
|
|||||||
{
|
{
|
||||||
"format": 278,
|
"format": 278,
|
||||||
"name": "DTS-HD MA",
|
"name": "DTS-HD MA",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 276,
|
"format": 276,
|
||||||
@@ -709,7 +759,7 @@
|
|||||||
{
|
{
|
||||||
"format": 252,
|
"format": 252,
|
||||||
"name": "720p",
|
"name": "720p",
|
||||||
"score": -120
|
"score": -10000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 250,
|
"format": 250,
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Transparent",
|
"name": "1080p Transparent",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 1002,
|
"cutoff": 1002,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -366,6 +366,56 @@
|
|||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 500,
|
"cutoffFormatScore": 500,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 344,
|
||||||
|
"name": "jennaortegaUHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 342,
|
||||||
|
"name": "Freeleech25",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 341,
|
||||||
|
"name": "Freeleech50",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 340,
|
||||||
|
"name": "Freeleech75",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 339,
|
||||||
|
"name": "Freeleech100",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 338,
|
||||||
|
"name": "TEST FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 337,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 336,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 335,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 334,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 333,
|
"format": 333,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
@@ -419,7 +469,7 @@
|
|||||||
{
|
{
|
||||||
"format": 322,
|
"format": 322,
|
||||||
"name": "Dolby Vision w/out Fallback",
|
"name": "Dolby Vision w/out Fallback",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 321,
|
"format": 321,
|
||||||
@@ -434,27 +484,27 @@
|
|||||||
{
|
{
|
||||||
"format": 317,
|
"format": 317,
|
||||||
"name": "TrueHD (Missing)",
|
"name": "TrueHD (Missing)",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 316,
|
"format": 316,
|
||||||
"name": "HDR10 (Missing)",
|
"name": "HDR10 (Missing)",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 315,
|
"format": 315,
|
||||||
"name": "HDR10",
|
"name": "HDR10",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 314,
|
"format": 314,
|
||||||
"name": "Dolby Vision",
|
"name": "Dolby Vision",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 312,
|
"format": 312,
|
||||||
"name": "HDR10+",
|
"name": "HDR10+",
|
||||||
"score": 0
|
"score": -9999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 308,
|
"format": 308,
|
||||||
@@ -474,7 +524,7 @@
|
|||||||
{
|
{
|
||||||
"format": 303,
|
"format": 303,
|
||||||
"name": "mHD",
|
"name": "mHD",
|
||||||
"score": -999999
|
"score": -99999
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 302,
|
"format": 302,
|
||||||
@@ -574,12 +624,12 @@
|
|||||||
{
|
{
|
||||||
"format": 281,
|
"format": 281,
|
||||||
"name": "TrueHD",
|
"name": "TrueHD",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 280,
|
"format": 280,
|
||||||
"name": "DTS-X",
|
"name": "DTS-X",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 279,
|
"format": 279,
|
||||||
@@ -589,7 +639,7 @@
|
|||||||
{
|
{
|
||||||
"format": 278,
|
"format": 278,
|
||||||
"name": "DTS-HD MA",
|
"name": "DTS-HD MA",
|
||||||
"score": -9999
|
"score": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": 276,
|
"format": 276,
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Optimal",
|
"name": "2160p Optimal",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 31,
|
"cutoff": 31,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -359,6 +359,56 @@
|
|||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 320,
|
"cutoffFormatScore": 320,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 344,
|
||||||
|
"name": "jennaortegaUHD",
|
||||||
|
"score": -99999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 342,
|
||||||
|
"name": "Freeleech25",
|
||||||
|
"score": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 341,
|
||||||
|
"name": "Freeleech50",
|
||||||
|
"score": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 340,
|
||||||
|
"name": "Freeleech75",
|
||||||
|
"score": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 339,
|
||||||
|
"name": "Freeleech100",
|
||||||
|
"score": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 338,
|
||||||
|
"name": "TEST FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 337,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 336,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 335,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 334,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 333,
|
"format": 333,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
@@ -0,0 +1,927 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Balanced (Single Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Else",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Balanced Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 0,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -99999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,927 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Balanced",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Else",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Balanced Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 500,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -99999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,913 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Optimal (Single Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 20,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 0,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,913 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Optimal",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 20,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 1000,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,934 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Transparent (Double Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback SD",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1003
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback 1080p",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Transparent Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 140,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -999999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 120
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,934 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p Transparent (Single Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback SD",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1003
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback 1080p",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Transparent Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 0,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -999999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -10000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 110
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 120
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 120
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Transparent",
|
"name": "1080p Transparent",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 1001,
|
"cutoff": 1001,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -239,6 +239,31 @@
|
|||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 500,
|
"cutoffFormatScore": 500,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 224,
|
"format": 224,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
@@ -0,0 +1,927 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p h265 Balanced ",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Else",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Balanced Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 500,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -99999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,927 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "1080p h265 Balanced (Single Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 1001,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Else",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Balanced Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": true,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 0,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": -99999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 190
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 210
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": 220
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 70
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,934 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "2160p Optimal (Single Grab)",
|
||||||
|
"upgradeAllowed": true,
|
||||||
|
"cutoff": 21,
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 0,
|
||||||
|
"name": "Unknown",
|
||||||
|
"source": "unknown",
|
||||||
|
"resolution": 0
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 13,
|
||||||
|
"name": "Bluray-480p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 4,
|
||||||
|
"name": "HDTV-720p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 14,
|
||||||
|
"name": "WEBRip-720p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 5,
|
||||||
|
"name": "WEBDL-720p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 6,
|
||||||
|
"name": "Bluray-720p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 720
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback SD",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 1,
|
||||||
|
"name": "SDTV",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 12,
|
||||||
|
"name": "WEBRip-480p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 8,
|
||||||
|
"name": "WEBDL-480p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 2,
|
||||||
|
"name": "DVD",
|
||||||
|
"source": "dvd",
|
||||||
|
"resolution": 480
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": false,
|
||||||
|
"id": 1003
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fallback 1080p",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 10,
|
||||||
|
"name": "Raw-HD",
|
||||||
|
"source": "televisionRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 9,
|
||||||
|
"name": "HDTV-1080p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": false,
|
||||||
|
"id": 1002
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Transparent Capable",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 3,
|
||||||
|
"name": "WEBDL-1080p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 15,
|
||||||
|
"name": "WEBRip-1080p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 7,
|
||||||
|
"name": "Bluray-1080p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"allowed": false,
|
||||||
|
"id": 1001
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 20,
|
||||||
|
"name": "Bluray-1080p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 1080
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 16,
|
||||||
|
"name": "HDTV-2160p",
|
||||||
|
"source": "television",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 17,
|
||||||
|
"name": "WEBRip-2160p",
|
||||||
|
"source": "webRip",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 19,
|
||||||
|
"name": "Bluray-2160p",
|
||||||
|
"source": "bluray",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 18,
|
||||||
|
"name": "WEBDL-2160p",
|
||||||
|
"source": "web",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"quality": {
|
||||||
|
"id": 21,
|
||||||
|
"name": "Bluray-2160p Remux",
|
||||||
|
"source": "blurayRaw",
|
||||||
|
"resolution": 2160
|
||||||
|
},
|
||||||
|
"items": [],
|
||||||
|
"allowed": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"minFormatScore": 0,
|
||||||
|
"cutoffFormatScore": 0,
|
||||||
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 224,
|
||||||
|
"name": "h265",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 223,
|
||||||
|
"name": "LiNG",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 214,
|
||||||
|
"name": "LQ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 213,
|
||||||
|
"name": "EPSiLON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 212,
|
||||||
|
"name": "playBD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 211,
|
||||||
|
"name": "BLURANiUM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 210,
|
||||||
|
"name": "PmP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 209,
|
||||||
|
"name": "WiLDCAT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 208,
|
||||||
|
"name": "TRiToN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 207,
|
||||||
|
"name": "3L",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 206,
|
||||||
|
"name": "Dolby Vision w/out Fallback",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 205,
|
||||||
|
"name": "UHDBits",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 204,
|
||||||
|
"name": "ATMOS (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 203,
|
||||||
|
"name": "TrueHD (Missing)",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 202,
|
||||||
|
"name": "HDR10 (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 201,
|
||||||
|
"name": "HDR10",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 200,
|
||||||
|
"name": "Dolby Vision",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 199,
|
||||||
|
"name": "HDR10+",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 198,
|
||||||
|
"name": "Stream Optimised",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 197,
|
||||||
|
"name": "LoRD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 196,
|
||||||
|
"name": "Scene",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 195,
|
||||||
|
"name": "mHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 194,
|
||||||
|
"name": "AV-1",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 193,
|
||||||
|
"name": "VVC",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 192,
|
||||||
|
"name": "Extras",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 191,
|
||||||
|
"name": "480p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 190,
|
||||||
|
"name": "Dariush ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 189,
|
||||||
|
"name": "TBB SD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 188,
|
||||||
|
"name": "Xvid",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 187,
|
||||||
|
"name": "DVD",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 186,
|
||||||
|
"name": "DVD REMUX ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 185,
|
||||||
|
"name": "HANDJOB SD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 184,
|
||||||
|
"name": "iTunes (Missing)",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 183,
|
||||||
|
"name": "ROKU",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 182,
|
||||||
|
"name": "BeyondHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 181,
|
||||||
|
"name": "Disc ",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 180,
|
||||||
|
"name": "3D",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 179,
|
||||||
|
"name": "Unwanted",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 178,
|
||||||
|
"name": "RightSIZE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 177,
|
||||||
|
"name": "Black and White",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 176,
|
||||||
|
"name": "TrueHD",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 175,
|
||||||
|
"name": "DTS-X",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 174,
|
||||||
|
"name": "FLAC",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 173,
|
||||||
|
"name": "DTS-HD MA",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 172,
|
||||||
|
"name": "x265",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 171,
|
||||||
|
"name": "IMAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 170,
|
||||||
|
"name": "ATMOS",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 169,
|
||||||
|
"name": "DD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 168,
|
||||||
|
"name": "DTS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 167,
|
||||||
|
"name": "DD+",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 166,
|
||||||
|
"name": "iTunes",
|
||||||
|
"score": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 165,
|
||||||
|
"name": "Paramount+",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 164,
|
||||||
|
"name": "Peacock TV",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 163,
|
||||||
|
"name": "Hulu",
|
||||||
|
"score": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 162,
|
||||||
|
"name": "Netflix",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 161,
|
||||||
|
"name": "HBO Max",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 160,
|
||||||
|
"name": "Disney+",
|
||||||
|
"score": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 159,
|
||||||
|
"name": "Apple TV+",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 158,
|
||||||
|
"name": "Movies Anywhere",
|
||||||
|
"score": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 157,
|
||||||
|
"name": "Amazon Prime",
|
||||||
|
"score": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 156,
|
||||||
|
"name": "REMUX",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 155,
|
||||||
|
"name": "x264",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 154,
|
||||||
|
"name": "WEBRip",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 153,
|
||||||
|
"name": "Blu-Ray",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 152,
|
||||||
|
"name": "2160p",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 151,
|
||||||
|
"name": "720p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 150,
|
||||||
|
"name": "1080p",
|
||||||
|
"score": -9999
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 149,
|
||||||
|
"name": "BHDStudio",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 148,
|
||||||
|
"name": "LEGi0N",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 147,
|
||||||
|
"name": "FraMeSToR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 146,
|
||||||
|
"name": "iFT",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 145,
|
||||||
|
"name": "MTeam",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 144,
|
||||||
|
"name": "EDPH",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 143,
|
||||||
|
"name": "HANDJOB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 142,
|
||||||
|
"name": "c0ke",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 141,
|
||||||
|
"name": "KASHMiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 140,
|
||||||
|
"name": "WMING",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 139,
|
||||||
|
"name": "playHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 138,
|
||||||
|
"name": "E.N.D",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 137,
|
||||||
|
"name": "GutS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 136,
|
||||||
|
"name": "BV",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 135,
|
||||||
|
"name": "SiMPLE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 134,
|
||||||
|
"name": "W4NK3R",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 133,
|
||||||
|
"name": "GS88",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 132,
|
||||||
|
"name": "HiP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 131,
|
||||||
|
"name": "GALAXY",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 130,
|
||||||
|
"name": "luvBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 129,
|
||||||
|
"name": "NyHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 128,
|
||||||
|
"name": "ZIMBO",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 127,
|
||||||
|
"name": "ThD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 126,
|
||||||
|
"name": "SaNcTi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 125,
|
||||||
|
"name": "ORiGEN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 124,
|
||||||
|
"name": "Positive",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 123,
|
||||||
|
"name": "ESiR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 122,
|
||||||
|
"name": "Chotab",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 121,
|
||||||
|
"name": "xander",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 120,
|
||||||
|
"name": "FTW-HD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 119,
|
||||||
|
"name": "Penumbra",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 118,
|
||||||
|
"name": "TDD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 117,
|
||||||
|
"name": "Dariush SD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 116,
|
||||||
|
"name": "PTer",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 115,
|
||||||
|
"name": "SbR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 114,
|
||||||
|
"name": "nmd",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 113,
|
||||||
|
"name": "TBB",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 112,
|
||||||
|
"name": "EA",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 111,
|
||||||
|
"name": "BMF",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 110,
|
||||||
|
"name": "LolHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 109,
|
||||||
|
"name": "HDMaNiAcS",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 108,
|
||||||
|
"name": "IDE",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 107,
|
||||||
|
"name": "de[42]",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 106,
|
||||||
|
"name": "NCmt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 105,
|
||||||
|
"name": "decibeL",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 104,
|
||||||
|
"name": "NTb",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 103,
|
||||||
|
"name": "CRiSC",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 102,
|
||||||
|
"name": "SA89",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 101,
|
||||||
|
"name": "HiDt",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 100,
|
||||||
|
"name": "FoRM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 99,
|
||||||
|
"name": "HiFi",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 98,
|
||||||
|
"name": "CtrlHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 97,
|
||||||
|
"name": "VietHD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 96,
|
||||||
|
"name": "ZQ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 95,
|
||||||
|
"name": "TayTo",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 94,
|
||||||
|
"name": "Geek",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 93,
|
||||||
|
"name": "EbP",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 92,
|
||||||
|
"name": "DON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 91,
|
||||||
|
"name": "D-Z0N3",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 215,
|
||||||
|
"name": "CJ",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 216,
|
||||||
|
"name": "pcroland",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 217,
|
||||||
|
"name": "BTN",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 218,
|
||||||
|
"name": "iON",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 219,
|
||||||
|
"name": "AJP69",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 220,
|
||||||
|
"name": "VLAD",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 221,
|
||||||
|
"name": "hdalx",
|
||||||
|
"score": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Optimal",
|
"name": "2160p Optimal",
|
||||||
"upgradeAllowed": true,
|
"upgradeAllowed": true,
|
||||||
"cutoff": 21,
|
"cutoff": 21,
|
||||||
"items": [
|
"items": [
|
||||||
@@ -239,6 +239,31 @@
|
|||||||
"minFormatScore": 0,
|
"minFormatScore": 0,
|
||||||
"cutoffFormatScore": 320,
|
"cutoffFormatScore": 320,
|
||||||
"formatItems": [
|
"formatItems": [
|
||||||
|
{
|
||||||
|
"format": 229,
|
||||||
|
"name": "HR",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 228,
|
||||||
|
"name": "MAX",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 227,
|
||||||
|
"name": "h265 (4k)",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 226,
|
||||||
|
"name": "PCM",
|
||||||
|
"score": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"format": 225,
|
||||||
|
"name": "Blu-Ray (Remux)",
|
||||||
|
"score": 60
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"format": 224,
|
"format": 224,
|
||||||
"name": "h265",
|
"name": "h265",
|
||||||
2
requirements.txt
Normal file
2
requirements.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
PyYAML==6.0.1
|
||||||
|
Requests==2.31.0
|
||||||
24
setup.py
Normal file
24
setup.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
config_content = """
|
||||||
|
instances:
|
||||||
|
radarr:
|
||||||
|
- name: "Master"
|
||||||
|
base_url: "http://localhost:7878"
|
||||||
|
api_key: "API_KEY"
|
||||||
|
- name: "4k-radarr"
|
||||||
|
base_url: "http://localhost:7887"
|
||||||
|
api_key: "API_KEY"
|
||||||
|
sonarr:
|
||||||
|
- name: "Master"
|
||||||
|
base_url: "http://localhost:8989"
|
||||||
|
api_key: "API_KEY"
|
||||||
|
- name: "4k-sonarr"
|
||||||
|
base_url: "http://localhost:8998"
|
||||||
|
api_key: "API_KEY"
|
||||||
|
settings:
|
||||||
|
export_path: "./exports"
|
||||||
|
import_path: "./imports"
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
with open('config.yml', 'w') as file:
|
||||||
|
file.write(config_content)
|
||||||
49
syncarr.py
49
syncarr.py
@@ -1,39 +1,22 @@
|
|||||||
import exportarr
|
from exportarr import export_custom_formats, export_quality_profiles
|
||||||
import importarr
|
from importarr import import_custom_formats, import_quality_profiles
|
||||||
import json
|
from helpers import load_config, get_app_choice
|
||||||
import shutil
|
|
||||||
import os
|
|
||||||
|
|
||||||
def sync_data():
|
def main():
|
||||||
# Load configuration for main app
|
app = get_app_choice().lower() # Convert to lowercase
|
||||||
with open('config.json', 'r') as config_file:
|
config = load_config() # Load the entire configuration
|
||||||
config = json.load(config_file)
|
|
||||||
|
|
||||||
# Specify the temporary path where files were saved
|
# Now app will be 'radarr' or 'sonarr', matching the keys in the config dictionary
|
||||||
temp_cf_path = './temp_directory/custom_formats'
|
master_instance = next((inst for inst in config['instances'][app] if inst['name'] == 'Master'), None)
|
||||||
temp_qf_path = './temp_directory/quality_profiles'
|
extra_instances = [inst for inst in config['instances'][app] if inst['name'] != 'Master']
|
||||||
|
|
||||||
# Get user choice for app (radarr/sonarr)
|
if master_instance:
|
||||||
app_choice = importarr.get_user_choice()
|
export_custom_formats(app, [master_instance], config)
|
||||||
|
export_quality_profiles(app, [master_instance], config)
|
||||||
|
|
||||||
# Export data for the chosen app
|
if extra_instances:
|
||||||
exportarr.export_cf(app_choice, save_path=temp_cf_path)
|
import_custom_formats(app, extra_instances)
|
||||||
exportarr.export_qf(app_choice, save_path=temp_qf_path)
|
import_quality_profiles(app, extra_instances)
|
||||||
|
|
||||||
# Sync with each extra installation of the chosen app
|
|
||||||
for extra_instance in config['extra_installations'].get(app_choice, []):
|
|
||||||
source_config = extra_instance
|
|
||||||
print(f"Importing to instance: {extra_instance['name']}")
|
|
||||||
|
|
||||||
# Import custom formats and quality profiles to each extra instance
|
|
||||||
importarr.import_custom_formats(source_config, import_path=temp_cf_path, auto_select_file=True)
|
|
||||||
importarr.import_quality_profiles(source_config, import_path=temp_qf_path)
|
|
||||||
|
|
||||||
# Delete the temporary directories after the sync is complete
|
|
||||||
temp_directory = './temp_directory'
|
|
||||||
if os.path.exists(temp_directory):
|
|
||||||
shutil.rmtree(temp_directory)
|
|
||||||
print(f"Deleted temporary directory: {temp_directory}")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
sync_data()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user