mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
2023.8.6.0
93
Home.md
93
Home.md
@@ -17,14 +17,12 @@ This window contains all data management tools.
|
|||||||
|
|
||||||
## Buttons
|
## Buttons
|
||||||
|
|
||||||
### Info
|
### Info menu
|
||||||
|
|
||||||
|
#### Info
|
||||||
|
|
||||||
This form will show downloaded items (sorted by latest download date). Each line of data contains information about how many images and videos have been downloaded for the user. If no media is downloaded, the user will not appear in this form.
|
This form will show downloaded items (sorted by latest download date). Each line of data contains information about how many images and videos have been downloaded for the user. If no media is downloaded, the user will not appear in this form.
|
||||||
|
|
||||||
*Right-clicking on this button opens the '[Missing posts](#missing-posts)' window.*
|
|
||||||
|
|
||||||
*`Ctrl+Shift+Click` on this button opens the '[User metrics](#user-metrics)' window.*
|
|
||||||
|
|
||||||
Double-clicking on the data line will open the content folder.
|
Double-clicking on the data line will open the content folder.
|
||||||
|
|
||||||
- `View` - view modes:
|
- `View` - view modes:
|
||||||
@@ -45,9 +43,17 @@ Hot keys:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Missing posts
|
#### Users download queue
|
||||||
|
|
||||||
This form shows posts that have not been downloaded. This form is opened by right-clicking on the '[Info](#info)' button in the main window
|
This is a visualization of users' download queue.
|
||||||
|
|
||||||
|
Hot keys:
|
||||||
|
`Del` - cancel the download of the selected user
|
||||||
|
`Ctrl+F` - find the selected user in the main window
|
||||||
|
|
||||||
|
#### Missing posts
|
||||||
|
|
||||||
|
This form shows posts that have not been downloaded. This form is opened by clicking on the 'Missing posts' button in the '[Info](#info)' menu in the main window.
|
||||||
|
|
||||||
Buttons:
|
Buttons:
|
||||||
- `Delete` - delete selected posts
|
- `Delete` - delete selected posts
|
||||||
@@ -68,9 +74,9 @@ Hot keys:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### User metrics
|
#### User metrics
|
||||||
|
|
||||||
You can open this form by pressing `Ctrl+Shift+Click` on the 'Info' button in the main window.
|
You can open this form by clicking on the 'User metrics' button in the '[Info](#info)' menu in the main window.
|
||||||
|
|
||||||
Here you can get summary information for each user you have, such as: total size, number of files and their total size (by file type), last download date, etc.
|
Here you can get summary information for each user you have, such as: total size, number of files and their total size (by file type), last download date, etc.
|
||||||
|
|
||||||
@@ -106,7 +112,15 @@ Context menu:
|
|||||||
|
|
||||||
Load sessions:
|
Load sessions:
|
||||||
- `Load last session` - load last saved session data
|
- `Load last session` - load last saved session data
|
||||||
- `Select loading session` - Load the data of the session you have chosen (the session selection form will open)
|
- `Select loading session` - load the data of the session you have chosen (the session selection form will open)
|
||||||
|
|
||||||
|
Change view:
|
||||||
|
- `Downloads` - show downloaded regular users
|
||||||
|
- `Subscriptions` - show downloaded [subscriptions](#subscriptions)
|
||||||
|
|
||||||
|
Hot-keys:
|
||||||
|
- `F5` - refresh
|
||||||
|
- `Ctrl+G` - go to a specific page
|
||||||
|
|
||||||
*The buttons are only displayed if the `Store session data` option is [enabled](https://github.com/AAndyProgram/SCrawler/wiki/Settings#feed)*
|
*The buttons are only displayed if the `Store session data` option is [enabled](https://github.com/AAndyProgram/SCrawler/wiki/Settings#feed)*
|
||||||
|
|
||||||
@@ -125,6 +139,10 @@ The channels form will open.
|
|||||||
|
|
||||||
More about channels [here](https://github.com/AAndyProgram/SCrawler/wiki/Channels).
|
More about channels [here](https://github.com/AAndyProgram/SCrawler/wiki/Channels).
|
||||||
|
|
||||||
|
### Subscriptions
|
||||||
|
|
||||||
|
You can add profiles in subscription mode (if available). This mode means that files will not be downloaded. Instead, a video preview (screenshot) will be loaded. You can choose what to download, open a post, etc. The download goes through a [standalone downloader](#download-separate-video). You can see downloaded subscriptions in the [feed](#feed).
|
||||||
|
|
||||||
### Saved posts
|
### Saved posts
|
||||||
|
|
||||||
**[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**
|
**[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**
|
||||||
@@ -176,10 +194,13 @@ This allows you to pause the automation for a while. The pause will remain in ef
|
|||||||
- The first block specifies **how** users will be displayed in the form.
|
- The first block specifies **how** users will be displayed in the form.
|
||||||
- `Large/Small images` - with icons.
|
- `Large/Small images` - with icons.
|
||||||
- `List` / `Details` - simple, without icons.
|
- `List` / `Details` - simple, without icons.
|
||||||
- The second block specifies the user **sites** that will be displayed in the form.
|
- The second block specifies what **types of user** will be displayed in the form.
|
||||||
|
- `Show users` - show regular users in user list.
|
||||||
|
- `Show subscriptions` - show [subscriptions](#subscriptions) in user list.
|
||||||
|
- The third block specifies the user **sites** that will be displayed in the form.
|
||||||
- `All` - default
|
- `All` - default
|
||||||
- `Specific sites` - select sites to be displayed
|
- `Specific sites` - select sites to be displayed
|
||||||
- The third block specifies **which** users will be displayed in the form.
|
- The fourth block specifies **which** users will be displayed in the form.
|
||||||
- `All` - default.
|
- `All` - default.
|
||||||
- `Regular` - only show users who are not marked as `Favorite` or `Temporary`.
|
- `Regular` - only show users who are not marked as `Favorite` or `Temporary`.
|
||||||
- `Temporary` - only show users marked as temporary.
|
- `Temporary` - only show users marked as temporary.
|
||||||
@@ -191,7 +212,7 @@ This allows you to pause the automation for a while. The pause will remain in ef
|
|||||||
- `Excluded labels` - exclude from displaying users with the selected labels (this is suitable for situations where you want to hide a user but don't want to delete)
|
- `Excluded labels` - exclude from displaying users with the selected labels (this is suitable for situations where you want to hide a user but don't want to delete)
|
||||||
- `Ignore excluded labels` - Ignore excluding labels. This allows you to show users that should be excluded from display without resetting the current selection of excluded labels.
|
- `Ignore excluded labels` - Ignore excluding labels. This allows you to show users that should be excluded from display without resetting the current selection of excluded labels.
|
||||||
- `Show groups instead of labels` - show sites groups instead of labels (when filtering users by labels)
|
- `Show groups instead of labels` - show sites groups instead of labels (when filtering users by labels)
|
||||||
- The fourth block specifies the **date range** of the last download, whose users will be displayed in the form.
|
- The fifth block specifies the **date range** of the last download, whose users will be displayed in the form.
|
||||||
- `Limit dates (not in range)` - filter users whose last download date is not in the selected date range
|
- `Limit dates (not in range)` - filter users whose last download date is not in the selected date range
|
||||||
- `Limit dates (in range)` - filter users whose last download date is in the selected date range
|
- `Limit dates (in range)` - filter users whose last download date is in the selected date range
|
||||||
|
|
||||||
@@ -201,6 +222,27 @@ This allows you to pause the automation for a while. The pause will remain in ef
|
|||||||
|
|
||||||
The error log will be opened by clicking on this button. The log contains program and download errors. The log is saved automatically when you close the program, but you still can save, copy, or clear it (using the special buttons on the log form) if you want.
|
The error log will be opened by clicking on this button. The log contains program and download errors. The log is saved automatically when you close the program, but you still can save, copy, or clear it (using the special buttons on the log form) if you want.
|
||||||
|
|
||||||
|
## Bug report
|
||||||
|
|
||||||
|
You can submit a bug report anonymously, or prepare it for GitHub or email. You can find it in the top right corner of the main window (message icon).
|
||||||
|
|
||||||
|
**Fields:**
|
||||||
|
- `Describe the bug or write your message` - a clear and concise description of what the bug is.
|
||||||
|
- `Profile URL`
|
||||||
|
- `Post URL`
|
||||||
|
- `To Reproduce` - steps to reproduce the behavior: do something, see error.
|
||||||
|
- `Expected behavior` - a clear and concise description of what you expected to happen.
|
||||||
|
- `Log data`
|
||||||
|
- `Files` - attach files to your message (only works with anonymous message).
|
||||||
|
|
||||||
|
**Buttons:**
|
||||||
|
- `Anon message` - send an anonymous message. The developer will not be able you contact you back. You can attach files (images, photos) to your message. If you would like a response from the developer, response, please add your contact details (email, Discord, etc.). You can also use this button to say something nice to the developer. :blush:
|
||||||
|
- `email` - create a message to send via email.
|
||||||
|
- `GitHub` - create a MarkDown message to post to GitHub.
|
||||||
|
- `Copy` - create a message and copy to your clipboard.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Hot keys
|
## Hot keys
|
||||||
- `F1` - program information and checking for a new version
|
- `F1` - program information and checking for a new version
|
||||||
- `Insert` - add user
|
- `Insert` - add user
|
||||||
@@ -253,8 +295,9 @@ If you want to add a folder as a user, you need to use the following pattern: `D
|
|||||||
- `User name` - **Paste the user profile URL here.**
|
- `User name` - **Paste the user profile URL here.**
|
||||||
- `Friendly name` - if configured, this name will be displayed in the user list instead of the username (if this field is green, it means that the user site name is shown). `F` button to set the friendly name you configured; `S` button to set site name.
|
- `Friendly name` - if configured, this name will be displayed in the user list instead of the username (if this field is green, it means that the user site name is shown). `F` button to set the friendly name you configured; `S` button to set site name.
|
||||||
- `Special path` - specify a path other than the default path for user data. If you set an absolute path *(for example, `D:\Data\`)*, that path will be used as the user's path. If you set a relative path *(for example, `SomeFolder`, `SomeFolder\SomeFolder2`)*, then this path will be created relative to the root folder for this site (configured in the site settings).
|
- `Special path` - specify a path other than the default path for user data. If you set an absolute path *(for example, `D:\Data\`)*, that path will be used as the user's path. If you set a relative path *(for example, `SomeFolder`, `SomeFolder\SomeFolder2`)*, then this path will be created relative to the root folder for this site (configured in the site settings).
|
||||||
- `Options` - additional user options.
|
- `Subscription` - read about subscriptions [here](#subscriptions)
|
||||||
- `Sites combo box` - site pointers.
|
- `Sites combo box` - site pointers.
|
||||||
|
- `Options` - additional user options.
|
||||||
- `Temporary` - mark user as `Temporary`.
|
- `Temporary` - mark user as `Temporary`.
|
||||||
- `Favorite` - mark user as `Favorite`.
|
- `Favorite` - mark user as `Favorite`.
|
||||||
- `Download images/videos` - for the created user, only the selected media types will be downloaded.
|
- `Download images/videos` - for the created user, only the selected media types will be downloaded.
|
||||||
@@ -266,6 +309,7 @@ If you want to add a folder as a user, you need to use the following pattern: `D
|
|||||||
- `Auto detect site` - add users by the URLs.
|
- `Auto detect site` - add users by the URLs.
|
||||||
- `Description` - some information you want to keep. If the `Add by list` checkbox is checked, you must enter a list of users in this textbox (`Shift+Enter` to insert new line);
|
- `Description` - some information you want to keep. If the `Add by list` checkbox is checked, you must enter a list of users in this textbox (`Shift+Enter` to insert new line);
|
||||||
- `Labels` - labels associated with this user (used to filter users in the main window).
|
- `Labels` - labels associated with this user (used to filter users in the main window).
|
||||||
|
- `Color` - you can select custom user highlighting in the main window and feed.
|
||||||
- `Script` - If the checkbox is checked, script to be executed after the user download is complete. If the text is empty, the script from the global settings will be executed. [How to use the script](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-use-the-script).
|
- `Script` - If the checkbox is checked, script to be executed after the user download is complete. If the text is empty, the script from the global settings will be executed. [How to use the script](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-use-the-script).
|
||||||
If neither `Temporary` nor `Favorite` is checked, the user will be displayed in the regular site group.
|
If neither `Temporary` nor `Favorite` is checked, the user will be displayed in the regular site group.
|
||||||
|
|
||||||
@@ -298,6 +342,7 @@ You can pick up one or more labels in this form.
|
|||||||
- `Download data to the date` - download this user/collection data up to selected date.
|
- `Download data to the date` - download this user/collection data up to selected date.
|
||||||
- `Edit user information` - open a form to change user parameters.
|
- `Edit user information` - open a form to change user parameters.
|
||||||
- `Delete user/collection` - delete one or more selected users/collections.
|
- `Delete user/collection` - delete one or more selected users/collections.
|
||||||
|
- `Erase data` - delete all user data and/or download history
|
||||||
- `Copy data to another folder` - allows you to copy user data to another folder.
|
- `Copy data to another folder` - allows you to copy user data to another folder.
|
||||||
- `Change favorite` - if the user was marked as favorite, he becomes a regular; otherwise, he becomes the favorite.
|
- `Change favorite` - if the user was marked as favorite, he becomes a regular; otherwise, he becomes the favorite.
|
||||||
- `Change temporary` - if the user was marked as temporary, he becomes a regular; otherwise, he becomes the temporary.
|
- `Change temporary` - if the user was marked as temporary, he becomes a regular; otherwise, he becomes the temporary.
|
||||||
@@ -306,7 +351,7 @@ You can pick up one or more labels in this form.
|
|||||||
- `Change script usage` - change script usage for selected users.
|
- `Change script usage` - change script usage for selected users.
|
||||||
- `Add to collection` - add user to collection.
|
- `Add to collection` - add user to collection.
|
||||||
- `Merge collection files` - move files to collection root folder.
|
- `Merge collection files` - move files to collection root folder.
|
||||||
- `Change folder` - change user data folder
|
- `Change folder` - [change user data folder](#change-user-location)
|
||||||
- `Change image` - change user icon.
|
- `Change image` - change user icon.
|
||||||
- `Open contains folder` - open selected user/collection folder.
|
- `Open contains folder` - open selected user/collection folder.
|
||||||
- `Open site` - open user profile.
|
- `Open site` - open user profile.
|
||||||
@@ -314,15 +359,27 @@ You can pick up one or more labels in this form.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Redownload user
|
### Change user location
|
||||||
|
|
||||||
Unfortunately, there is no way to simply redownload user.
|
This window gives you the option to select the user's exact location.
|
||||||
|
|
||||||
|
When you change the locations of a collection, the `Collection name` textbox also appears. You must select the location of the collection and set the collection name!
|
||||||
|
|
||||||
|
If the `Global path` checkbox is checked, the selected location will be added to the global locations for quick selection in the future.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Redownload user
|
||||||
|
|
||||||
#### Method 1
|
#### Method 1
|
||||||
|
|
||||||
Delete the user and add it again.
|
**Right-click on the user, then click `Erase data`. Then download this user again.**
|
||||||
|
|
||||||
#### Method 2
|
#### Method 2
|
||||||
|
|
||||||
|
Delete the user and add it again.
|
||||||
|
|
||||||
|
#### Method 3
|
||||||
1. Open the user settings folder.
|
1. Open the user settings folder.
|
||||||
1. Find the `....._Data.xml` and `....._Posts.txt` files.
|
1. Find the `....._Data.xml` and `....._Posts.txt` files.
|
||||||
1. Delete these files.
|
1. Delete these files.
|
||||||
|
|||||||
131
Plugins.md
131
Plugins.md
@@ -154,6 +154,7 @@ interface ISiteSettings
|
|||||||
Icon Icon {get;};
|
Icon Icon {get;};
|
||||||
Image Image {get;};
|
Image Image {get;};
|
||||||
string Site {get;};
|
string Site {get;};
|
||||||
|
bool SubscriptionsAllowed {get;};
|
||||||
ILogProvider Logger {get; set;};
|
ILogProvider Logger {get; set;};
|
||||||
string GetUserUrl(IPluginContentProvider User);
|
string GetUserUrl(IPluginContentProvider User);
|
||||||
ExchangeOptions IsMyUser(string UserURL);
|
ExchangeOptions IsMyUser(string UserURL);
|
||||||
@@ -183,6 +184,8 @@ interface ISiteSettings
|
|||||||
|
|
||||||
`Site`, `Icon` and `Image` are properties that provide the site name and site icon (in `Icon` and `Image` formats).
|
`Site`, `Icon` and `Image` are properties that provide the site name and site icon (in `Icon` and `Image` formats).
|
||||||
|
|
||||||
|
`SubscriptionsAllowed` indicates that the plugin allows users to be created in subscription mode.
|
||||||
|
|
||||||
`IsMyUser` and `IsMyImageVideo` are URLs validators. These functions should return a value (`ExchangeOptions` with `Exists` set to `true`) indicating whether the user or media belongs to your plugin.
|
`IsMyUser` and `IsMyImageVideo` are URLs validators. These functions should return a value (`ExchangeOptions` with `Exists` set to `true`) indicating whether the user or media belongs to your plugin.
|
||||||
|
|
||||||
`GetInstance` must return an instance for downloading data. The `What` parameter specifies what type of instance is being requested.
|
`GetInstance` must return an instance for downloading data. The `What` parameter specifies what type of instance is being requested.
|
||||||
@@ -275,6 +278,7 @@ interface IPluginContentProvider : IDisposable
|
|||||||
ISiteSettings Settings {get; set;};
|
ISiteSettings Settings {get; set;};
|
||||||
string Name {get; set;};
|
string Name {get; set;};
|
||||||
string ID {get; set;};
|
string ID {get; set;};
|
||||||
|
string Options {get; set;};
|
||||||
bool ParseUserMediaOnly {get; set;};
|
bool ParseUserMediaOnly {get; set;};
|
||||||
string UserDescription {get; set;};
|
string UserDescription {get; set;};
|
||||||
List<IUserMedia> ExistingContentList {get; set;};
|
List<IUserMedia> ExistingContentList {get; set;};
|
||||||
@@ -283,6 +287,7 @@ interface IPluginContentProvider : IDisposable
|
|||||||
bool UserExists {get; set;};
|
bool UserExists {get; set;};
|
||||||
bool UserSuspended {get; set;};
|
bool UserSuspended {get; set;};
|
||||||
bool IsSavedPosts {get; set;};
|
bool IsSavedPosts {get; set;};
|
||||||
|
string IsSubscription {get; set;};
|
||||||
bool SeparateVideoFolder {get; set;};
|
bool SeparateVideoFolder {get; set;};
|
||||||
string DataPath {get; set;};
|
string DataPath {get; set;};
|
||||||
Nullable<int> PostsNumberLimit {get; set;};
|
Nullable<int> PostsNumberLimit {get; set;};
|
||||||
@@ -308,7 +313,9 @@ See the [Thrower](#IThrower) , [LogProvider](#ILogProvider) and [Settings](#ISit
|
|||||||
`Name` is the username returned from the settings class when a new user is created.
|
`Name` is the username returned from the settings class when a new user is created.
|
||||||
`ID` is the user ID on the site.
|
`ID` is the user ID on the site.
|
||||||
`UserDescription` is the user description.
|
`UserDescription` is the user description.
|
||||||
`UserExists` and `UserSuspended` are properties indicating that the user is exists/suspended on the site
|
`UserExists` and `UserSuspended` are properties indicating that the user is exists/suspended on the site.
|
||||||
|
`Options` are the options that can be sent from the [`ISiteSettings`](#isitesettings).
|
||||||
|
`IsSubscription` indicates that the you must set the URL of the [`IUserMedia`](#iusermedia) structure to the URL of the video preview image (screenshot), not to the URL of the video file.
|
||||||
|
|
||||||
`ExchangeOptionsGet` and `ExchangeOptionsSet` are the functions for exchanging additional user options when the user is being edited by the user.
|
`ExchangeOptionsGet` and `ExchangeOptionsSet` are the functions for exchanging additional user options when the user is being edited by the user.
|
||||||
|
|
||||||
@@ -325,6 +332,10 @@ See the [Thrower](#IThrower) , [LogProvider](#ILogProvider) and [Settings](#ISit
|
|||||||
`GetMedia`: collect posts from the site and add then to the `TempMediaList` list.
|
`GetMedia`: collect posts from the site and add then to the `TempMediaList` list.
|
||||||
`Download`: download posts provided by the `TempMediaList` list.
|
`Download`: download posts provided by the `TempMediaList` list.
|
||||||
|
|
||||||
|
## IUserMedia
|
||||||
|
|
||||||
|
This is a interface to create a class or structure to exchange data (to be downloaded) between your plugin and SCrawler. There is already a `PluginUserMedia` structure that implements this interface, but you can create your own.
|
||||||
|
|
||||||
## IPropertyProvider
|
## IPropertyProvider
|
||||||
|
|
||||||
``` CSharp
|
``` CSharp
|
||||||
@@ -341,21 +352,21 @@ If your `IFormatProvider` class implements this interface, the `PropertyName` pr
|
|||||||
This is an exception thrower. If the user has requested to cancel the operation or delete the user instance, an exception will be thrown. Use the `IThrower.ThrowAny` method in your code to stop execution when requested!
|
This is an exception thrower. If the user has requested to cancel the operation or delete the user instance, an exception will be thrown. Use the `IThrower.ThrowAny` method in your code to stop execution when requested!
|
||||||
|
|
||||||
Exceptions:
|
Exceptions:
|
||||||
- ```OperationCanceledException``` - when user requested to cancel the operation
|
- `OperationCanceledException` - when user requested to cancel the operation
|
||||||
- ```ObjectDisposedException``` - when user deletes the user instance
|
- `ObjectDisposedException` - when user deletes the user instance
|
||||||
|
|
||||||
## ILogProvider
|
## ILogProvider
|
||||||
|
|
||||||
This is an interface for sending exceptions and messages to the program log.
|
This is an interface for sending exceptions and messages to the program log.
|
||||||
|
|
||||||
Functions:
|
Functions:
|
||||||
- ```Add(ByVal Message As String)``` - add ```Message``` to the program log
|
- `Add(ByVal Message As String)` - add `Message` to the program log
|
||||||
- ```Add```
|
- `Add`
|
||||||
- ```ex``` - your exception
|
- `ex` - your exception
|
||||||
- ```Message``` - additional message
|
- `Message` - additional message
|
||||||
- ```ShowMainMsg``` - show main message
|
- `ShowMainMsg` - show main message
|
||||||
- ```ShowErrorMsg``` - show error message
|
- `ShowErrorMsg` - show error message
|
||||||
- ```SendInLog``` - message and error message will be sent to the program log
|
- `SendInLog` - message and error message will be sent to the program log
|
||||||
|
|
||||||
# Objects
|
# Objects
|
||||||
|
|
||||||
@@ -364,9 +375,9 @@ Functions:
|
|||||||
This is the base object for interacting with SCrawler and bi-directional communication.
|
This is the base object for interacting with SCrawler and bi-directional communication.
|
||||||
|
|
||||||
There are three initialization constructors:
|
There are three initialization constructors:
|
||||||
- By initial ```value```. **If the value is ```null```, this constructor will throw an error!** Otherwise, the type will be extracted from the value.
|
- By initial `value`. **If the value is `null`, this constructor will throw an error!** Otherwise, the type will be extracted from the value.
|
||||||
- By ```value``` and ```type```.
|
- By `value` and `type`.
|
||||||
- By ```value```, ```type``` and ```function```. If you want, you can delegate a function to be called when the value changes. You can see an example in the Instagram ```SiteSettings``` class
|
- By `value`, `type` and `function`. If you want, you can delegate a function to be called when the value changes. You can see an example in the Instagram `SiteSettings` class
|
||||||
|
|
||||||
If your initial value is null, you **MUST** set the type.
|
If your initial value is null, you **MUST** set the type.
|
||||||
|
|
||||||
@@ -374,82 +385,94 @@ If your initial value is null, you **MUST** set the type.
|
|||||||
|
|
||||||
## IPropertyValue
|
## IPropertyValue
|
||||||
|
|
||||||
**Don't use this interface. This interface is only compatible with SCrawler. Always use the ```PropertyValue``` class!**
|
**Don't use this interface. This interface is only compatible with SCrawler. Always use the `PropertyValue` class!**
|
||||||
|
|
||||||
## PropertyData
|
## PropertyData
|
||||||
|
|
||||||
This is a structure for exchanging properties between classes without saving. It is currently used for [```PropertiesDataChecker```](#propertiesdatachecker) attribute.
|
This is a structure for exchanging properties between classes without saving. It is currently used for [`PropertiesDataChecker`](#propertiesdatachecker) attribute.
|
||||||
|
|
||||||
- ```Name``` - property name
|
- `Name` - property name
|
||||||
- ```Value``` - property value
|
- `Value` - property value
|
||||||
|
|
||||||
## ExchangeOptions
|
## ExchangeOptions
|
||||||
|
|
||||||
For your convenience, this structure provides two default initializers. Use them so you don't forget the fields.
|
For your convenience, this structure provides two default initializers. Use them so you don't forget the fields.
|
||||||
|
|
||||||
Currently used in [```IsMyUser```](#ismyuser) and [```IsMyImageVideo```](#ismyimagevideo)
|
Currently used in [`IsMyUser`](#ismyuser) and [`IsMyImageVideo`](#ismyimagevideo)
|
||||||
|
|
||||||
- ```UserName``` - user name or any other data (if specified in the method description)
|
- `UserName` - user name or any other data (if specified in the method description)
|
||||||
- ```SiteName``` - site name
|
- `SiteName` - site name
|
||||||
- ```HostKey``` - set automatically via ```SettingsHost```
|
- `HostKey` - set automatically via `SettingsHost`
|
||||||
|
- `Options` - are the options you want to send to the created user.
|
||||||
- `Exists`
|
- `Exists`
|
||||||
|
|
||||||
|
## ExitException
|
||||||
|
|
||||||
|
Represents errors that occur during downloading to be thrown to the root downloading function.
|
||||||
|
|
||||||
|
- `SimpleLogLine` - add only the message to the log, without adding a `StackTrace`. Default: `True`.
|
||||||
|
- `Silent` - don't add a message to the log. Default: `False`.
|
||||||
|
|
||||||
# Attributes
|
# Attributes
|
||||||
|
|
||||||
## PropertyOption
|
## PropertyOption
|
||||||
|
|
||||||
This attribute allows you to add your property to the Scrawler site settings form. Only works with ```PropertyValue``` [object](#propertyvalue).
|
This attribute allows you to add your property to the Scrawler site settings form. Only works with `PropertyValue` [object](#propertyvalue).
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
- ```PropertyName``` - automatically set when attribute is initialized. Corresponds to the property name.
|
- `PropertyName` - automatically set when attribute is initialized. Corresponds to the property name.
|
||||||
- ```Type``` - property value type. Can be obtained automatically from ```PropertyValue```.
|
- `Type` - property value type. Can be obtained automatically from `PropertyValue`.
|
||||||
- ```ControlText``` - this text will be displayed on the control in the settings form.
|
- `ControlText` - this text will be displayed on the control in the settings form.
|
||||||
- ```ControlToolTip``` - Control ToolTip.
|
- `ControlToolTip` - Control ToolTip.
|
||||||
- ```ThreeStates``` - CheckBox option. If ```true```, then the CheckBox will be displayed in three states: ```Checked```, ```Unchecked```, ```Indeterminate```. Default: ```false```.
|
- `ThreeStates` - CheckBox option. If `true`, then the CheckBox will be displayed in three states: `Checked`, `Unchecked`, `Indeterminate`. Default: `false`.
|
||||||
- ```AllowNull``` - If ```false```, then the settings form will display an error message when trying to save the property value if the property value is ```null```. Default: ```true```.
|
- `AllowNull` - If `false`, then the settings form will display an error message when trying to save the property value if the property value is `null`. Default: `true`.
|
||||||
- ```LeftOffset``` - Just a design option. This is just a control offset from the left border of the form (just for beauty).
|
- `LeftOffset` - Just a design option. This is just a control offset from the left border of the form (just for beauty).
|
||||||
- ```IsAuth``` - Default: ```false```. If at least one property has a ```PropertyOption``` with this parameter, then the controls in the settings form will be divided into two blocks: ```Authorization``` and ```Other```. Just a design option.
|
- `IsAuth` - Default: `false`. If at least one property has a `PropertyOption` with this parameter, then the controls in the settings form will be divided into two blocks: `Authorization` and `Other`. Just a design option.
|
||||||
- ```IsInformationLabel``` - Just a design option. Specifies that this property is just information.
|
- `IsInformationLabel` - Just a design option. Specifies that this property is just information.
|
||||||
- ```LabelTextAlign``` - The alignment of the control (label) text, if ```IsInformationLabel```.
|
- `LabelTextAlign` - The alignment of the control (label) text, if `IsInformationLabel`.
|
||||||
|
|
||||||
|
## DependentFields
|
||||||
|
|
||||||
|
This attribute specifies which properties should be updated in the settings form when the property to which this attribute belongs is updated. Only works with `PropertyValue` [object](#propertyvalue) and `PropertyUpdater` [attribute](#propertyupdater).
|
||||||
|
|
||||||
## PXML
|
## PXML
|
||||||
|
|
||||||
This attribute specifies that your property should be added to the SCrawler settings XML file. When launched, SCrawler will replace the value of your property with the value from the XML settings file.
|
This attribute specifies that your property should be added to the SCrawler settings XML file. When launched, SCrawler will replace the value of your property with the value from the XML settings file.
|
||||||
|
|
||||||
Again. Only works with ```PropertyValue``` [object](#propertyvalue).
|
Again. Only works with `PropertyValue` [object](#propertyvalue).
|
||||||
|
|
||||||
## PropertyUpdater
|
## PropertyUpdater
|
||||||
|
|
||||||
This attribute provides a mechanism for updating a specific property. Attributed can only be applied to a method. Allows multiple definitions. Function **MUST** return a ```Boolean``` (```bool``` in C#) with ```true``` indicating that the value has been updated and ```false``` otherwise.
|
This attribute provides a mechanism for updating a specific property. Attributed can only be applied to a method. Allows multiple definitions. Function **MUST** return a `Boolean` (`bool` in C#) with `true` indicating that the value has been updated and `false` otherwise.
|
||||||
|
|
||||||
- ```UpdatingPropertyName``` - the name of the property to be updated
|
- `UpdatingPropertyName` - the name of the property to be updated
|
||||||
- ```Dependent``` - array of the property names on which update depends
|
- `Arguments` - an array of arguments to be sent to your function. The argument is a name of a property in your class. The length of the array must match the number of function arguments.
|
||||||
|
|
||||||
## Manifest
|
## Manifest
|
||||||
|
|
||||||
This attribute provides the plugin key to associate users with the plugin. I recommend using the pattern: ```DeveloperName_Site```.
|
This attribute provides the plugin key to associate users with the plugin. I recommend using the pattern: `DeveloperName_Site`.
|
||||||
|
|
||||||
## SpecialForm
|
## SpecialForm
|
||||||
|
|
||||||
I have developed a fully integrated plugin environment. This means that any of your class property can be displayed in the SCrawler internal forms (for example, ```SettingsForm```, ```UserCreatorForm```). But if your plugin requires authorization or you want to manipulate your settings in a separate form, you can use the **```SpecialForm```** class attribute. This attribute allows multiple definitions for the same class and two working modes.
|
I have developed a fully integrated plugin environment. This means that any of your class property can be displayed in the SCrawler internal forms (for example, `SettingsForm`, `UserCreatorForm`). But if your plugin requires authorization or you want to manipulate your settings in a separate form, you can use the **`SpecialForm`** class attribute. This attribute allows multiple definitions for the same class and two working modes.
|
||||||
|
|
||||||
**```SpecialForm(True)```**, for class settings. This means that an additional button will be added to the site settings form to opening your settings form. In this case, it is necessary to develop an additional form that must be opened (using the ```ShowDialog``` method) by the ```OpenSettingsForm``` [class function](#opensettingsform).
|
**`SpecialForm(True)`**, for class settings. This means that an additional button will be added to the site settings form to opening your settings form. In this case, it is necessary to develop an additional form that must be opened (using the `ShowDialog` method) by the `OpenSettingsForm` [class function](#opensettingsform).
|
||||||
|
|
||||||
**```SpecialForm(False)```**, for user settings. This means that the ```Options``` button will be enabled on the user creator form. In this case, you must develop an additional exchange class and form. This works with the ```UserOptions``` class function. This [function](#useroptions) has two arguments: ```Options``` (reference) and ```OpenForm```.
|
**`SpecialForm(False)`**, for user settings. This means that the `Options` button will be enabled on the user creator form. In this case, you must develop an additional exchange class and form. This works with the `UserOptions` class function. This [function](#useroptions) has two arguments: `Options` (reference) and `OpenForm`.
|
||||||
|
|
||||||
## Provider
|
## Provider
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
- ```FieldsChecker``` - Read below for this option.
|
- `FieldsChecker` - Read below for this option.
|
||||||
- ```Interaction``` - If ```True```, the value in the text field will be changed via the provider when the text changes. The default value is ```False```.
|
- `Interaction` - If `True`, the value in the text field will be changed via the provider when the text changes. The default value is `False`.
|
||||||
|
|
||||||
This attribute indicates that the property is a provider. The provider must be an ```IFormatProvider```.
|
This attribute indicates that the property is a provider. The provider must be an `IFormatProvider`.
|
||||||
|
|
||||||
There are two working ways: check fields (```FieldsChecker```) and not.
|
There are two working ways: check fields (`FieldsChecker`) and not.
|
||||||
|
|
||||||
```FieldsChecker``` = ```true```. Convert text from TextBox in settings form to value
|
`FieldsChecker` = `true`. Convert text from TextBox in settings form to value
|
||||||
|
|
||||||
```FieldsChecker``` = ```false```. Converting a value by a specific converter. Also used to convert a value from XML to an object.
|
`FieldsChecker` = `false`. Converting a value by a specific converter. Also used to convert a value from XML to an object.
|
||||||
|
|
||||||
## ControlNumber
|
## ControlNumber
|
||||||
|
|
||||||
@@ -457,19 +480,19 @@ Just a design attribute. Allows you to place controls on the settings form in a
|
|||||||
|
|
||||||
## PropertiesDataChecker
|
## PropertiesDataChecker
|
||||||
|
|
||||||
An attribute for the validation method. ```Names``` is an array of property names to check values. The method **must** be a function with an ```IEnumerable``` argument of [```PropertyData```](#propertydata) and ```boolean``` return.
|
An attribute for the validation method. `Names` is an array of property names to check values. The method **must** be a function with an `IEnumerable` argument of [`PropertyData`](#propertydata) and `boolean` return.
|
||||||
|
|
||||||
Returning ```true``` means the values are OK.
|
Returning `true` means the values are OK.
|
||||||
|
|
||||||
If you need to check the values of some properties before saving the settings, use this attribute.
|
If you need to check the values of some properties before saving the settings, use this attribute.
|
||||||
|
|
||||||
## SeparatedTasks
|
## SeparatedTasks
|
||||||
|
|
||||||
If your plugin needs to run on a separate thread add the ```SeparatedTasks``` class attribute. If you want to limit download tasks per your plugin, you can set number of tasks for this attribute. For example: ```SeparatedTasks(1)``` means that only one user will be downloaded per task; ```SeparatedTasks(2)``` means that two users will be downloaded at the same time for each task. The number argument is optional. This means that if you don't specify a tasks number, the global tasks number will be used instead. In additional, the ```TaskCounter``` property [attribute](#taskcounter) has the highest priority. This means that if you make a property (to allow users to change the number of tasks) with a ```TaskCounter``` [attribute](#taskcounter), the number of ```SeparatedTasks``` will be ignored. But the ```SeparatedTasks``` attribute **MUST** be added to the class anyway if you want to run your plugin on the separate thread.
|
If your plugin needs to run on a separate thread add the `SeparatedTasks` class attribute. If you want to limit download tasks per your plugin, you can set number of tasks for this attribute. For example: `SeparatedTasks(1)` means that only one user will be downloaded per task; `SeparatedTasks(2)` means that two users will be downloaded at the same time for each task. The number argument is optional. This means that if you don't specify a tasks number, the global tasks number will be used instead. In additional, the `TaskCounter` property [attribute](#taskcounter) has the highest priority. This means that if you make a property (to allow users to change the number of tasks) with a `TaskCounter` [attribute](#taskcounter), the number of `SeparatedTasks` will be ignored. But the `SeparatedTasks` attribute **MUST** be added to the class anyway if you want to run your plugin on the separate thread.
|
||||||
|
|
||||||
## TaskCounter
|
## TaskCounter
|
||||||
|
|
||||||
If you want users to be able to control the number of download tasks in a thread, use this attribute. Only works with [```SeparatedTasks```](#separatedtasks)
|
If you want users to be able to control the number of download tasks in a thread, use this attribute. Only works with [`SeparatedTasks`](#separatedtasks)
|
||||||
|
|
||||||
## TaskGroup
|
## TaskGroup
|
||||||
|
|
||||||
@@ -477,18 +500,18 @@ Group this plugin into a specific download group. Look at the code to see how to
|
|||||||
|
|
||||||
## SavedPosts
|
## SavedPosts
|
||||||
|
|
||||||
If your plugin provides downloading of saved posts, add the ```SavedPosts``` class attribute.
|
If your plugin provides downloading of saved posts, add the `SavedPosts` class attribute.
|
||||||
|
|
||||||
## UseInternalDownloader
|
## UseInternalDownloader
|
||||||
|
|
||||||
User data instance attribute (for [```IPluginContentProvider```](#iplugincontentprovider)). Means that after parsing, SCrawler should use the internal downloader.
|
User data instance attribute (for [`IPluginContentProvider`](#iplugincontentprovider)). Means that after parsing, SCrawler should use the internal downloader.
|
||||||
|
|
||||||
## Github
|
## Github
|
||||||
|
|
||||||
Assembly attribute. Not used yet, but in future versions will allow SCrawler to check for updates to your plugin.
|
Assembly attribute. Not used yet, but in future versions will allow SCrawler to check for updates to your plugin.
|
||||||
|
|
||||||
- ```Name``` - your GitHub username
|
- `Name` - your GitHub username
|
||||||
- ```RepoName``` - your repository name
|
- `RepoName` - your repository name
|
||||||
|
|
||||||
# PropertyValue value types
|
# PropertyValue value types
|
||||||
|
|
||||||
|
|||||||
117
Settings.md
117
Settings.md
@@ -7,10 +7,13 @@
|
|||||||
- `Maximum download tasks of users` - the number of simultaneously downloading profiles.
|
- `Maximum download tasks of users` - the number of simultaneously downloading profiles.
|
||||||
- `Maximum download tasks of channels` - the number of simultaneously downloading channels.
|
- `Maximum download tasks of channels` - the number of simultaneously downloading channels.
|
||||||
- `Check new version at start`
|
- `Check new version at start`
|
||||||
|
- `Program title` - change the title of the main window if you need to.
|
||||||
|
- `Program description` - add some additional info to the program info if you need.
|
||||||
- `UserAgent` - default UserAgent to use in requests ([how to find](#how-to-find-useragent)). This is not a required field. Use it if you need to replace the UserAgent for all sites. A restart of SCrawler is required to take effect.
|
- `UserAgent` - default UserAgent to use in requests ([how to find](#how-to-find-useragent)). This is not a required field. Use it if you need to replace the UserAgent for all sites. A restart of SCrawler is required to take effect.
|
||||||
- `Imgur Client ID` - Imgur client ID to Bypass NSFW protection and download galleries
|
- `Imgur Client ID` - Imgur client ID to Bypass NSFW protection and download galleries
|
||||||
- `Userlist image` - customize the image that will be displayed at the background of the main window
|
- `Userlist image` - customize the image that will be displayed at the background of the main window
|
||||||
- `Userlist color` - set the background color and font color of the main window (`F` button to select font color; `C` button to select background color)
|
- `Userlist color` - set the background color and font color of the main window (`F` button to select font color; `C` button to select background color)
|
||||||
|
- `Subscriptions color` - set the background color and font color of subscriptions (`F` button to select font color; `C` button to select background color)
|
||||||
- `Show groups` - show user site groups
|
- `Show groups` - show user site groups
|
||||||
- `Use user grouping` - Group users by groups and/or labels. If disabled, users will not be grouped by site or label.
|
- `Use user grouping` - Group users by groups and/or labels. If disabled, users will not be grouped by site or label.
|
||||||
|
|
||||||
@@ -65,9 +68,14 @@
|
|||||||
- `Remove downloaded automatically` - remove downloaded item from the list when item downloading is complete.
|
- `Remove downloaded automatically` - remove downloaded item from the list when item downloading is complete.
|
||||||
- `DoubleClick opens` - what do you want to open when you double click on an item.
|
- `DoubleClick opens` - what do you want to open when you double click on an item.
|
||||||
- `Create video thumbnail` - create video thumbnail for downloaded video.
|
- `Create video thumbnail` - create video thumbnail for downloaded video.
|
||||||
|
- `Keep video thumbnail with files` - save video thumbnail along with the file or in the cache (only works with `Create video thumbnail`).
|
||||||
|
- `Leave the thumbnails cache` - if disabled, video thumbnails will be deleted after SCrawler closes. Only works with `Create video thumbnail` and `Keep video thumbnail with files`.
|
||||||
- `Update the YouTube output path when you change the output path` - update YouTube output path every time you change file destination.
|
- `Update the YouTube output path when you change the output path` - update YouTube output path every time you change file destination.
|
||||||
- `Load downloaded YouTube videos to the form` - If checked, downloaded YouTube videos will be loaded to the form. Otherwise, all downloaded data will be loaded to the form except YouTube data.
|
- `Load downloaded YouTube videos to the form` - if checked, downloaded YouTube videos will be loaded to the form. Otherwise, all downloaded data will be loaded to the form except YouTube data.
|
||||||
- `Clear YouTube videos when clearing the list` - If checked, YouTube videos will also be removed from the list. This action will also affect the standalone [`YouTubeDownloader`](https://github.com/AAndyProgram/SCrawler/wiki/YouTube-downloader) app.
|
- `Clear YouTube videos when clearing the list` - if checked, YouTube videos will also be removed from the list. This action will also affect the standalone [`YouTubeDownloader`](https://github.com/AAndyProgram/SCrawler/wiki/YouTube-downloader) app.
|
||||||
|
- `Output path: ask for a name` - ask for a name when adding a new output path to the list.
|
||||||
|
- `Output path: auto add` - add new paths to the list automatically.
|
||||||
|
- `Reset download locations` - all saved download locations will be deleted.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -107,6 +115,8 @@
|
|||||||
- `Add the session number to the post title` - The session number will be displayed to the left of the post title. A session is every time when you (or [AutoDownloader](#automation)) download data.
|
- `Add the session number to the post title` - The session number will be displayed to the left of the post title. A session is every time when you (or [AutoDownloader](#automation)) download data.
|
||||||
- `Add the date to the post title` - The download date and time will be displayed to the right of the post title.
|
- `Add the date to the post title` - The download date and time will be displayed to the right of the post title.
|
||||||
- `Store session data` - If checked, session data will be stored in an xml file.
|
- `Store session data` - If checked, session data will be stored in an xml file.
|
||||||
|
- `Open last mode (users or subscriptions)` - if disabled, the user mode will be used when initializing the feed.
|
||||||
|
- `Show friendly names instead of usernames`
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -114,6 +124,8 @@
|
|||||||
|
|
||||||
If you see something like `Jobs <number>` in the progress bar, it means that SCrawler is still collecting information. In some cases, SCrawler takes some time to collect information for downloading files.
|
If you see something like `Jobs <number>` in the progress bar, it means that SCrawler is still collecting information. In some cases, SCrawler takes some time to collect information for downloading files.
|
||||||
|
|
||||||
|
Red highlight means that the field is required or you have entered an incorrect value. White highlight means the field is optional.
|
||||||
|
|
||||||
## Sites requirements
|
## Sites requirements
|
||||||
|
|
||||||
- [Reddit](#reddit-requirements)
|
- [Reddit](#reddit-requirements)
|
||||||
@@ -148,29 +160,57 @@ ffmpeg is required for several sites like Reddit, PornHub, XHamster, XVIDEOS, et
|
|||||||
|
|
||||||
## Gallery-dl
|
## Gallery-dl
|
||||||
|
|
||||||
Version **1.25.2** ([release](https://github.com/mikf/gallery-dl/releases/tag/v1.25.2); [exe](https://github.com/GyanD/codexffmpeg/releases/download/5.1.2/ffmpeg-5.1.2-full_build.zip))
|
Version **1.25.8** ([release](https://github.com/mikf/gallery-dl/releases/tag/v1.25.8); [exe](https://github.com/mikf/gallery-dl/releases/download/v1.25.8/gallery-dl.exe))
|
||||||
|
|
||||||
## YT-DLP
|
## YT-DLP
|
||||||
|
|
||||||
Version **2023.03.04** ([release](https://github.com/yt-dlp/yt-dlp/releases/tag/2023.03.04))
|
Version **2023.07.06** ([release](https://github.com/yt-dlp/yt-dlp/releases/tag/2023.07.06))
|
||||||
|
|
||||||
- x64 version - [exe](https://github.com/yt-dlp/yt-dlp/releases/download/2023.03.04/yt-dlp.exe)
|
- x64 version - [exe](https://github.com/yt-dlp/yt-dlp/releases/download/2023.07.06/yt-dlp.exe)
|
||||||
- x86 version - [exe](https://github.com/yt-dlp/yt-dlp/releases/download/2023.03.04/yt-dlp_x86.exe)
|
- x86 version - [exe](https://github.com/yt-dlp/yt-dlp/releases/download/2023.07.06/yt-dlp_x86.exe)
|
||||||
|
|
||||||
|
## User query options
|
||||||
|
|
||||||
|
**Available for search queries only. Not used when creating users.**
|
||||||
|
|
||||||
|
You can modify an existing query if you need to. This can be suitable when the site changes query parameters such as order, filters, etc. You can also change query completely, but I don't recommend doing that.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Reddit
|
## Reddit
|
||||||
|
|
||||||
The Reddit parser can parse data without cookies, but you can add it if you like.
|
The Reddit parser can parse data without cookies, but you can add it if you like.
|
||||||
|
|
||||||
- `Use M3U8` - If you are using an x86 program, you will not be able to use the M3U8 download. In other cases, this setting controls how to download videos hosted on Reddit. There are two ways to download: the mp4 file as is, but without an audio track, and through an m3u8 playlist that contains an audio track.
|
**You don't need to set up [credentials](#how-to-get-credentials) like `Login`, `Password`, `Client ID`, `Client Secret` and `Bearer token`. The OAuth authorization ability has been added for future purposes. You can configure them if you want, but Reddit allows you to download without them. On the other hand, if you use cookies to download timelines, you need to set up credentials.**
|
||||||
- `Saved posts user` - your personal Reddit username to download your saved posts (this feature requires cookies)
|
|
||||||
|
- Authorization
|
||||||
|
- `Login` - your authorization username ([how to get](#how-to-get-credentials))
|
||||||
|
- `Password` - your authorization password ([how to get](#how-to-get-credentials))
|
||||||
|
- `Client ID` - your registered app client ID ([how to get](#how-to-get-credentials))
|
||||||
|
- `Client Secret` - your registered app client secret ([how to get](#how-to-get-credentials))
|
||||||
|
- `Bearer token` - bearer token (`authorization` header) (can be null) ([how to find](#how-to-find-headers)). If you are using cookies to download the timeline, it is highly recommended that you add a token. You can find different tokens in the responses. **Make sure that bearer token belongs to Reddit and not RedGifs.** There is not need to add a token if you are not using cookies to download the timeline.
|
||||||
|
- `Token refresh interval` - interval (in minutes) to refresh the token
|
||||||
|
- `Use the token to download the timeline`
|
||||||
|
- `Use the token to download saved posts`
|
||||||
|
- `Use cookies to download the timeline`
|
||||||
|
- `Saved posts user` - your personal Reddit username to download your saved posts (this feature requires cookies)
|
||||||
|
- Other parameters
|
||||||
|
- `Use M3U8` - If you are using an x86 program, you will not be able to use the M3U8 download. In other cases, this setting controls how to download videos hosted on Reddit. There are two ways to download: the mp4 file as is, but without an audio track, and through an m3u8 playlist that contains an audio track.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Reddit requirements
|
### Reddit requirements
|
||||||
- [Cookies](#how-to-set-up-cookies) for downloading saved posts
|
- [Cookies](#how-to-set-up-cookies) for downloading saved posts
|
||||||
- [ffmpeg](#ffmpeg) for downloading videos hosted on reddit
|
- [Token](#how-to-find-headers) for downloading the timeline if you use cookies.
|
||||||
- [Imgur client ID](#how-to-find-imgur-client-id) to download Imgur content posted on reddit
|
- [ffmpeg](#ffmpeg) for downloading videos hosted on Reddit
|
||||||
- [RedGifs credentials](#redgifs-requirements) to download RedGifs content posted on reddit
|
- [Imgur client ID](#how-to-find-imgur-client-id) to download Imgur content posted on Reddit
|
||||||
|
- [RedGifs credentials](#redgifs-requirements) to download RedGifs content posted on Reddit
|
||||||
|
|
||||||
|
### How to get Reddit credentials
|
||||||
|
1. Read this: https://github.com/reddit-archive/reddit/wiki/OAuth2-Quick-Start-Example
|
||||||
|
1. Create an app (script) here (use [this](https://github.com/reddit-archive/reddit/wiki/OAuth2-Quick-Start-Example#first-steps) guide): https://www.reddit.com/prefs/apps
|
||||||
|
1. When your app is created, you need to go to the following URL (replace the `<FIELD_NAME>` fields with the values from the app you registered) and click `Allow`: `https://www.reddit.com/api/v1/authorize?client_id=<CLIENT_ID>&response_type=code&state=SSS&redirect_uri=<REDIRECT_URL>&duration=permanent&scope=adsread,adsconversions,history`
|
||||||
|
1. Add your credentials to SCrawler and click on the curved arrows in the `Token` field.
|
||||||
|
|
||||||
### Reddit user settings
|
### Reddit user settings
|
||||||
- `View` - works the same as Reddit view modes (`new`, `hot`, `top`)
|
- `View` - works the same as Reddit view modes (`new`, `hot`, `top`)
|
||||||
@@ -179,27 +219,24 @@ The Reddit parser can parse data without cookies, but you can add it if you like
|
|||||||

|

|
||||||
|
|
||||||
## Twitter
|
## Twitter
|
||||||
|
- `Use the appropriate model` - Use the appropriate model for new users. If disabled, all download models will be used for the first download. Next, the appropriate download model will be automatically selected. Otherwise the appropriate download model will be selected right from the start.
|
||||||
|
- `New endpoint: search` - use new endpoint argument (`-o search-endpoint=graphql`) for the search model.
|
||||||
|
- `New endpoint: profiles` - use new endpoint argument (`-o search-endpoint=graphql`) for the profile models.
|
||||||
|
- `Abort on limit` - abort twitter downloading when limit is reached.
|
||||||
|
- `Download already parsed` - download already parsed content on abort.
|
||||||
|
- `Media Model: allow non-user tweets` - allow downloading non-user tweets in the media-model.
|
||||||
- `Download GIFs` - *(default for new users) this can also be configured for a specific user.*
|
- `Download GIFs` - *(default for new users) this can also be configured for a specific user.*
|
||||||
- `GIFs special folder` - *(default for new users)* Put the GIFs in a special folder. **This is a folder name, not an absolute path** (examples: `SomeFolderName`, `SomeFolderName\SomeFolderName2`). This folder(s) will be created relative to the user's root folder. *This can also be configured for a specific user.*
|
- `GIFs special folder` - *(default for new users)* Put the GIFs in a special folder. **This is a folder name, not an absolute path** (examples: `SomeFolderName`, `SomeFolderName\SomeFolderName2`). This folder(s) will be created relative to the user's root folder. *This can also be configured for a specific user.*
|
||||||
- `GIF prefix` - *(default for new users)* This prefix will be added to the beginning of the filename. *This can also be configured for a specific user.*
|
- `GIF prefix` - *(default for new users)* This prefix will be added to the beginning of the filename. *This can also be configured for a specific user.*
|
||||||
- `Use MD5 comparison` - *(default for new users)* each image will be checked for existence using MD5 (this may be suitable for the users who post the same image many times). *This can also be configured for a specific user.*
|
- `Use MD5 comparison` - *(default for new users)* each image will be checked for existence using MD5 (this may be suitable for the users who post the same image many times). *This can also be configured for a specific user.*
|
||||||
- `Concurrent downloads` - The number of concurrent downloads.
|
- `Concurrent downloads` - the number of concurrent downloads.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<!---
|
|
||||||
- [`Authorization`](#how-to-find-twitter-tokens) - Bearer token. Must start with `Bearer ` word followed by a space.
|
|
||||||
- [`Token`](#how-to-find-twitter-tokens) - in this field you need to put `x-csrf-token`.
|
|
||||||
--->
|
|
||||||
|
|
||||||
### Twitter requirements
|
### Twitter requirements
|
||||||
- [`Cookies`](#how-to-set-up-cookies)
|
- [`Cookies`](#how-to-set-up-cookies)
|
||||||
- [`gallery-dl`](#gallery-dl)
|
- [`gallery-dl`](#gallery-dl)
|
||||||
|
|
||||||
<!---
|
|
||||||
- [`Authorization`](#how-to-find-twitter-tokens)
|
|
||||||
- [`Token`](#how-to-find-twitter-tokens)
|
|
||||||
--->
|
|
||||||
|
|
||||||
### Twitter user settings
|
### Twitter user settings
|
||||||
- `Download GIFs` - *same as default twitter settings, but for this user*
|
- `Download GIFs` - *same as default twitter settings, but for this user*
|
||||||
@@ -207,15 +244,19 @@ The Reddit parser can parse data without cookies, but you can add it if you like
|
|||||||
- `GIF prefix` - *same as default twitter settings, but for this user*
|
- `GIF prefix` - *same as default twitter settings, but for this user*
|
||||||
- `Use MD5 comparison` - *same as default twitter settings, but for this user*
|
- `Use MD5 comparison` - *same as default twitter settings, but for this user*
|
||||||
- `Remove existing duplicates` - Existing files will be checked for duplicates and duplicates removed. **Works only on the first activation 'Use MD5 comparison'.**
|
- `Remove existing duplicates` - Existing files will be checked for duplicates and duplicates removed. **Works only on the first activation 'Use MD5 comparison'.**
|
||||||
|
- `Media Model: allow non-user tweets` - *same as default twitter settings, but for this user*
|
||||||
- `Download model 'Media'` - Download the data using the `https://twitter.com/UserName/media` command.
|
- `Download model 'Media'` - Download the data using the `https://twitter.com/UserName/media` command.
|
||||||
- `Download model 'Profile'` - Download the data using the `https://twitter.com/UserName` command.
|
- `Download model 'Profile'` - Download the data using the `https://twitter.com/UserName` command.
|
||||||
- `Download model 'Search'` - Download the data using the `https://twitter.com/search?q=from:UserName+include:nativeretweets` command.
|
- `Download model 'Search'` - Download the data using the `https://twitter.com/search?q=from:UserName+include:nativeretweets` command.
|
||||||
|
- `Force apply` - force overrides the default parameters (download model) for the first download (applies to first download only).
|
||||||
|
|
||||||
**You don't need to change the `Download model` parameters. During the first download SCrawler will determine the optimal parameters. These are the command parameters for gallery-dl. Change them only if you know what you are doing.**
|
**You don't need to change the `Download model` parameters. During the first download SCrawler will determine the optimal parameters. These are the command parameters for gallery-dl. Change them only if you know what you are doing.**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## OnlyFans
|
## OnlyFans
|
||||||
|
- `Download highlights` - download profile highlights if they exists
|
||||||
|
- `Download chat` - download unlocked chat media
|
||||||
- `user-id`, `x-bc`, `app-token`, `sec-sc-ua`, `UserAgent` - required headers ([how to find](#how-to-find-headers) (the request you need must start with `posts?limit=.....`))
|
- `user-id`, `x-bc`, `app-token`, `sec-sc-ua`, `UserAgent` - required headers ([how to find](#how-to-find-headers) (the request you need must start with `posts?limit=.....`))
|
||||||
- `Use old authorization rules` - use old dynamic rules (from 'DATAHOARDERS') or new ones (from 'DIGITALCRIMINALS'). **Change this value only if you know what you are doing.**
|
- `Use old authorization rules` - use old dynamic rules (from 'DATAHOARDERS') or new ones (from 'DIGITALCRIMINALS'). **Change this value only if you know what you are doing.**
|
||||||
- `Dynamic rules update` - 'Dynamic rules' update interval (minutes). Default: `1440`.
|
- `Dynamic rules update` - 'Dynamic rules' update interval (minutes). Default: `1440`.
|
||||||
@@ -270,6 +311,8 @@ The Reddit parser can parse data without cookies, but you can add it if you like
|
|||||||
- `Get tagged photos` - default value for new users
|
- `Get tagged photos` - default value for new users
|
||||||
- `Tagged notify limit` - Limit of new tagged posts when you receive a notification (read more [here](#instagram-tagged-posts-limit))
|
- `Tagged notify limit` - Limit of new tagged posts when you receive a notification (read more [here](#instagram-tagged-posts-limit))
|
||||||
|
|
||||||
|
**If an error occurred and the log told you that you need to update your credentials, you also need to enable the disabled functions (`Download timeline`, `Download stories`) back.**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Instagram requirements
|
### Instagram requirements
|
||||||
@@ -416,21 +459,34 @@ See additional settings [here](https://github.com/AAndyProgram/SCrawler/wiki/You
|
|||||||
|
|
||||||
### Pinterest requirements
|
### Pinterest requirements
|
||||||
- [`Cookies`](#how-to-set-up-cookies) for private data
|
- [`Cookies`](#how-to-set-up-cookies) for private data
|
||||||
- [**gallery-dl**](#Gallery-dl)
|
- [*gallery-dl*](#Gallery-dl)
|
||||||
|
|
||||||
## TikTok
|
## TikTok
|
||||||
|
- `Remove tags from title` - if the title contains tags, they will be removed (only works with `Use native title`)
|
||||||
|
- `Use native title` - use a user-created video title for the filename instead of the video ID
|
||||||
|
- `Use native title in standalone downloader` - use a user-created video title for the filename instead of the video ID
|
||||||
|
- `Add video ID to video title` - the video ID will be added to the file name
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### TikTok requirements
|
### TikTok requirements
|
||||||
- [`Cookies`](#how-to-set-up-cookies)
|
- **[yt-dlp](#YT-DLP)**
|
||||||
|
- **[`yt-dlp-TTUser`](https://github.com/bashonly/yt-dlp-TTUser) plugin for yt-dlp**
|
||||||
|
|
||||||
### TikTok limits
|
### How to install yt-dlp-TTUser plugin
|
||||||
|
1. Go to https://github.com/bashonly/yt-dlp-TTUser
|
||||||
|
1. Click on the `Code` button, then `download ZIP`
|
||||||
|
1. Unzip it to the following folder: `C:\Users\User\AppData\Roaming\yt-dlp-plugins\`
|
||||||
|
1. As a result, the plugin must be located in the following path: `C:\Users\User\AppData\Roaming\yt-dlp-plugins\yt-dlp-TTUser-master\yt_dlp_plugins\extractor\tt_user.py`.
|
||||||
|
|
||||||
Unfortunately, I didn't understand how to use the 'Cursor' option to get the JSON response. In this case, I can only parse an HTML page that only provides the latest 30 videos. **If you know how to use the cursor option to get a JSON response, you can post with your suggestion [here](https://github.com/AAndyProgram/SCrawler/issues/75).**
|
Read more in the official yt-dlp [plugin installation guide](https://github.com/yt-dlp/yt-dlp#installing-plugins).
|
||||||
|
|
||||||
## PornHub
|
## PornHub
|
||||||
- `Download UHD` - download UHD (4K) content.
|
- `Download UHD` - download UHD (4K) content.
|
||||||
|
- `Download uploaded` - download uploaded videos.
|
||||||
|
- `Download tagged` - download tagged videos.
|
||||||
|
- `Download private` - download private videos.
|
||||||
|
- `Download favorite` - download favorite videos.
|
||||||
- `Download GIF` - default for new users.
|
- `Download GIF` - default for new users.
|
||||||
- `Download GIFs as mp4` - download gifs in 'mp4' format instead of native 'webm'.
|
- `Download GIFs as mp4` - download gifs in 'mp4' format instead of native 'webm'.
|
||||||
- `Photo ModelHub only` - download photo only from ModelHub. Prornstar photos hosted on PornHub itself will not be downloaded. **Attention! Downloading photos hosted on PornHub is a very heavy job.**
|
- `Photo ModelHub only` - download photo only from ModelHub. Prornstar photos hosted on PornHub itself will not be downloaded. **Attention! Downloading photos hosted on PornHub is a very heavy job.**
|
||||||
@@ -473,6 +529,7 @@ About photos. Photo download problems have the lowest priority. You can still cr
|
|||||||
## ThisVid
|
## ThisVid
|
||||||
- `Public videos` - download public videos.
|
- `Public videos` - download public videos.
|
||||||
- `Private videos` - download private videos.
|
- `Private videos` - download private videos.
|
||||||
|
- `Favourite videos` - download favourite videos.
|
||||||
- `Different folders` - Use different folders to store video files. If `true`, then public videos will be stored in the `Public` folder, private - in the `Private` folder. If `false`, all videos will be stored in the `Video` folder.
|
- `Different folders` - Use different folders to store video files. If `true`, then public videos will be stored in the `Public` folder, private - in the `Private` folder. If `false`, all videos will be stored in the `Video` folder.
|
||||||
|
|
||||||

|

|
||||||
@@ -499,6 +556,9 @@ It is very easy to create a new group. Just click the `Add a new download group`
|
|||||||
- `Favorite` - users marked as favorite (indeterminate state to not use this option) will be downloaded
|
- `Favorite` - users marked as favorite (indeterminate state to not use this option) will be downloaded
|
||||||
- `Ready for download` - users marked as `Ready for download` will be downloaded
|
- `Ready for download` - users marked as `Ready for download` will be downloaded
|
||||||
- `Ignore ready for download` - this option tells the program to ignore the `Ready for download` user option and download the user anyway
|
- `Ignore ready for download` - this option tells the program to ignore the `Ready for download` user option and download the user anyway
|
||||||
|
- `Subscriptions` - include subscriptions in the download queue (read about subscriptions [here](https://github.com/AAndyProgram/SCrawler/wiki#subscriptions)).
|
||||||
|
- `Subscriptions only` - include **only** subscriptions in the download queue (only works with `Subscriptions`).
|
||||||
|
- `Users` - the number of users that to be downloaded. The number is 0 = all users. Number greater than 0 = number of users from the beginning to the end of the list. Number less than 0 = number of users from end to the beginning of the list.
|
||||||
- `Labels` - You can select labels.
|
- `Labels` - You can select labels.
|
||||||
- `Pencil` button for selected labels. Only users who have one or more of these labels will be downloaded.
|
- `Pencil` button for selected labels. Only users who have one or more of these labels will be downloaded.
|
||||||
- `Red X` button for excluded labels. Users who have one or more of these labels will be excluded from the download.
|
- `Red X` button for excluded labels. Users who have one or more of these labels will be excluded from the download.
|
||||||
@@ -530,7 +590,12 @@ You can set up automatic downloads. You can find these settings in `Settings-Aut
|
|||||||
- `Add`, `Edit`, `Delete` - operations with the selected plan;
|
- `Add`, `Edit`, `Delete` - operations with the selected plan;
|
||||||
- `Update` - refresh list;
|
- `Update` - refresh list;
|
||||||
- `Start` - run the created (stopped) plan;
|
- `Start` - run the created (stopped) plan;
|
||||||
- `Skip` - skip next run.
|
- `Start (force)` - force start of the current task;
|
||||||
|
- `Skip` - skip next run:
|
||||||
|
- `Skip` - delay for the number of minutes configured in the task;
|
||||||
|
- `Delay for minutes` - delay for a specific number of minutes;
|
||||||
|
- `Delay by date/time`
|
||||||
|
- `Delay reset` - reset the delay you set earlier.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ You can change the setting of the video you want to download.
|
|||||||
7. You can also choose the destination of the output file.
|
7. You can also choose the destination of the output file.
|
||||||
8. Click `Download` to confirm your choices, or `Cancel` to cancel the download.
|
8. Click `Download` to confirm your choices, or `Cancel` to cancel the download.
|
||||||
|
|
||||||
|
*Right-click the `Browse` button to select a new location and add the new location to the list.*
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Playlist
|
# Playlist
|
||||||
@@ -46,6 +48,8 @@ When you add a playlist, the following form will open. This form is similar to t
|
|||||||
- Audio codec, video format and additional subtitles/audio will be applied to all videos.
|
- Audio codec, video format and additional subtitles/audio will be applied to all videos.
|
||||||
- The list of available subtitles will be populated from the collected subtitles from all videos in the playlist. They will be downloaded if they are actually available for video.
|
- The list of available subtitles will be populated from the collected subtitles from all videos in the playlist. They will be downloaded if they are actually available for video.
|
||||||
|
|
||||||
|
*Right-click the `Browse` button to select a new location and add the new location to the list.*
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Playlists parser
|
## Playlists parser
|
||||||
|
|||||||
Reference in New Issue
Block a user