# Documentation

## DeepSound - The Ultimate PHP Music Sharing Platform

DeepSound would like to welcome you to our official Knowledge Base. In our efforts to continually improve our product and assistance, we've established this new knowledge base and are filling it with user and developer documentation.

- Current Version: 1.4.5
- Author: DoughouzForest

- Created On: 09 April, 2019
- Last Update: 26 Jan, 2022

If you have any questions that are beyond the scope of this help file, Please feel free to email via Item Support Page.

Important! This is the only official DeepSound PHP Script, please stay away from any cracked, nulled or stolen copies, they may contain malwares.
With the official DeepSound license, you get life time free updates, support, and custom work services.

## Installation

Follow the steps below to setup your site:

1. Unzip the downloaded package and open the /Script folder to find all the script files. You will need to upload these files to your hosting web server using FTP or localhost in order to use it on your website.
2. Below is the folder structure and needs to be uploaded to your website or localhost root directory:
3. You should upload all the files.
4. Once you are done uploading, open your browser (Google Chrome is recommended).
5. Go to http://www.YOUTSITE.com/install
6. Agree the Terms of Use then click Next.

7. Important! Before we start the installation, please make sure you have the following installed on your server:

8. In the second page, make sure to fill the required data:
   - Purchase Code - Envato purchase code. What is this?
   - SQL Host name - MySQL host name, e.g: localhost
   - SQL Username - MySQL username.
   - SQL Password - MySQL user password.
   - SQL Database - MySQL database name.
   - Site URL - Your Website URL, examples:
     - https://siteurl.com
     - https://www.siteurl.com
     - https://siteurl.com
     - https://subdomain.siteurl.com
     - http://localhost
     - https://siteurl.com/subfolder
   - Site Name - Your site name, max 32 characters.
   - Site Title - Your site title, max 100 characters.
   - Site E-mail - Your site email, ex: info@yourdomain.com, Gmail or Hotmail is not supported. It should be one of your server's emails.
   - Waves Color - This will generate waves as photos based on this color, so this can't be edited later for generated waves, only can be changed for new waves.
   - Admin Username - Choose your admin username.
   - Admin Password- Choose your admin password.
9. Once you have wrote the information, please click the install button and wait for a while, the installation process may take up to 5 minutes.
10. We are ready to go!

Hmm, using Nginx? if your server is using Nginx, please follow the last steps below:

- Open your server's root nginx.conf file, most of the time It's located it in: /etc/nginx/nginx.conf
- Open the home directory of the script, you should be able to find this file nginx.conf.
- Open the located file, and copy its content to your root nginx.conf file: /etc/nginx/nginx.conf
- If you find it something difficult to do, please contact your hosting provider, and they will do it for you easily.

## What's Next?

Most Important Part After Installation is to redirect non www to www, or www to non www. Also it is important to setup SSL for your site, Please follow the steps below to do so.

- Open .htaccess file located in root directory.
- To redirect your website to SSL, copy and paste the code below after RewriteEngine On

      																										RewriteCond %{HTTPS} off
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

- To redirect your website to www, copy and paste the code below after RewriteEngine On

      																													RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
      RewriteCond %{HTTPS}s ^on(s)|
      RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

- If you made any changes above, last step is to update your domain name in `config.php` file.

## Color Schemes

You can change your Website's Color Scheme in an instant. You can edit the main orange color from those files:

- `./themes/default/css/style.css` - Find and replace all #f98f1d with your new color.
- `./themes/volcano/css/style.css` - Find and replace all #f98f1d with your new color.

Note: You can change the default audio waves color from `Admin Panel -> Settings -> General Configuration -> Song & Player Settings`

## Logo & Favicon Settings

The Logo Can Be Changed From `Admin Panel -> Design -> Change Site Design`

## General Setup

A setup guide on configuring 3rd party services.

#### How to setup SMTP?

SMTP is used to send E-mails from your website.

- The first step of the process is to create an email account on your hosting package. This will be required for the SMTP configuration of your DeepSound website and it will also ensure that all emails from your website are successfully delivered to your users. You can create a new email account via cPanel.
- Once you have your email account created, you can proceed with the actual configuration of your DeepSound website. You need to access your website as administrator and go to SMTP settings from `Admin Panel -> Settings -> E-mail & SMS Setup -> E-mail Configuration`
- Edit the following options:
  1. Server Type - Choose SMTP from the drop-down box
  2. SMTP Host -mail.example.com (change example.com to your actual domain)
  3. SMTP Username - Enter the email account created in the previous chapter
  4. SMTP Password - Enter the password for your email account
  5. SMTP Port - SMTP server port, most used 587 for TLS, and 465 for SSL encryption
  6. SMTP Encryption - Choose SMTP encryption method
- I made the changes above but my website is not sending any emails, what I can do?
  - Please test your SMTP credentials at SMTPER, if the same config worked by the test, please contact us.

#### How to setup Twilio (SMS) service?

Twilio is used to send SMS from your website, it is used for Two-auth system.

- Log into your Twilio project at www.twilio.com/console. If you don't have account yet, create one.
- Click on https://console.twilio.com/us1/develop/sms.
- Create your own app by clicking on Start Sending Messages.
- Once your app is created, Go to Try It Out
- Select your number, if you don't have a number, buy one from Twilio.
- Once done, you'll get Account SID, and Auth Token.
- Go to `Admin Panel -> E-mail & SMS -> SMS Configuration`
- Edit the following options:
  1. Twilio account_sid - Your Account SID we got one previous chapter
  2. Twilio auth_token -Your Auth Token we got one previous chapter
  3. Twilio Phone number - Enter the phone number you purchased from Twilio.
  4. Your Phone number - Enter your own phone number, ex: +9053..

#### How to setup FFMPEG?

FFMPEG is used to convert all audio files to .mp3 format. It is required if you want to upload other files than mp3, also for audio waves.

- We have included a patched version of FFMPEG in the script, located in ./ffmpeg folder.
- Go to `Admin Panel -> Import & Upload Configuration -> FFMPEG System Settings`
- Enable FFMPEG, the default path for FFMPEG will be ./ffmpeg/ffmpeg
- Chmod and change file permission of ./ffmpeg/ffmpeg to 0777
- Now, scroll down a bit and find Debug FFMPEG, click debug and see the results.
- If the audio file was converted after debugging, then everything is ready, you can ignore the below steps.
- If you get broken audio file, then you'll need to use your own server ffmpeg library, to install ffmpeg on your server, follow these links:
  - How to install ffmpeg on Centos 7? Click Here.
  - How to install ffmpeg on Centos 8? Click Here.
  - How to install ffmpeg on Ubuntu? Click Here.
  - How to install ffmpeg on debian? Click Here.
- Once you done with the installation, go back to `Admin Panel -> Import & Upload Configuration -> FFMPEG System Settings` & Edit the following options:
  1. FFmpeg binary file path - Write the path you installed ffmpeg on your server, mostly will be `/usr/bin/ffmpeg` or `ffmpeg`
- Debug FFMPEG again, it should work fine.
- Important: Make sure shell_exec PHP function is enabled on your server.
- Try to upload music to your website, if the music has been converted, then your site is ready!

#### How to setup Amazon S3 Storage?

The script will upload images and audio files to Amazon, your server's CPU load will decrease and your website performance will increase.

- Sign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3/.
- Choose Create bucket.
- In Bucket name, enter a DNS-compliant name for your bucket.
- In Region, choose the AWS Region where you want the bucket to reside.
- Under Object Ownership, choose ACLs disabled.
- Choose Create bucket & You've created a bucket in Amazon S3.

- Also make sure you added the Bucket Policy by adding this JSON code in Bucket Policy, You need to replace YOUR-BUCKET-NAME with your Bucket Name.

      {
      	"Version": "2008-10-17",
      	"Statement": [
      		{
                  "Sid": "AllowPublicRead",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "*"
                  },
                  "Action": "s3:GetObject",
                  "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
              }
          ]
      }

- Also make sure you have configered the CORS configuration by adding this JSON code below:

      [
          {
              "AllowedHeaders": [
                  "Authorization"
              ],
              "AllowedMethods": [
                  "GET"
              ],
              "AllowedOrigins": [
                  "*"
              ],
              "ExposeHeaders": [],
              "MaxAgeSeconds": 3000
          }
      ]

- Next step is to get Security credentials.
  1. Open the IAM console at https://console.aws.amazon.com/iam/
  2. On the navigation menu, choose Users.
  3. Choose your IAM user name (not the check box).
  4. Open the Security credentials tab, and then choose Create access key.
  5. To see the new access key, choose Show. Your credentials resemble the following:
     - Access key ID: `AKIAIOSFODNN7EXAMPLE`
     - Secret access key: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`
- Go to `Admin Panel -> Import & Upload Configuration -> Amazon S3 Configuration`
- Edit the following options:
  1. Amazon Bucket Name - Your new bucket we created on the previous chapter
  2. Amazon S3 Key - Your account access key ID
  3. Amazon S3 Secret Key - Your account secret access key
  4. Amazon S3 bucket Region - Your new bucket region we created on the previous chapter
- if your website is freshly installed and still brand new, you can ignore the upload process below and press only on Test Connection
- Transferring files from DeepSound to Amazon S3:
  1. If you already have DeepSound installed on your server, and you want to use Amazon, make sure to upload the whole "upload/" folder to your bucket.
  2. We recommend to upload the folder and files via S3cmd.
  3. Make sure to use `--acl-public` in your command line while uploading the files.

#### How to setup Google Drive?

- Go to the Google API Manager console and log in using your Google credentials.
- After this click on Create Project link for create new project.
- Enter Project Name and click on Create button.
- Select the project from the dropdown menu beside Google CLoud Platform.
- Click on APIs & Services then click on +ENABLE APIS AND SERVICES .
- Search for Google Drive and enable Google Drive API.
- Once enabled, click on Credentials, on the top nav-bar, click on +Create credentials then click on Oauth client ID
- In OAuth consent screen page, choose External, fill the form and click Save and Continue.
  - In Authorized domains section, make sure to add your own domain name with or without www.
- On the next page, you'll see the button Add or remove scopes, click on it.
  - Look for drive and select it.
  - Scroll down and click on UPDATE.
- If you successfully added the new scopes, click on SAVE AND CONTINUE.
- Ignore the Test users section and click on SAVE AND CONTINUE.
- Scroll down and click on BACK TO DASHBOARD.
- On the next page, click on PUBLISH APP and publish your application.
- On the left nav bar, click on Credentials, on the top nav-bar, click on +Create credentials then Oauth client ID
  - In Application type, choose web application.
  - In Authorized redirect URIs, add the following URIs:
    1. `https://yourwebsite.com/google.php`
    2. `https://www.yourwebsite.com/google.php`
- Click on Create then you'll see your Client ID and Client secret, copy those keys and headback to your website.
- Go to `Admin Panel -> Import & Upload Configuration -> Google Drive` & Edit the following options:
  1. Client ID - Enter the Client ID.
  2. Client secret - Enter the Client secret.
  3. Enable Google Drive.
- Once done and saved, click on Click Here To Connect Google Drive and authorize your account.
- Important If you have already users and songs uploaded to your website, you need to upload them to Google Drive, to do so you can click on Upload Files From Google Drive, this process will work in background and it may take hours, or days depends on the amount of files you have.

Note: When you enter the URL of your website in to the App Domains field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Authorized redirect URIs field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup Digitalocean Storage?

The script will upload images and audio files to Digitalocean, your server's CPU load will decrease and your website performance will increase.

- Sign in to the DigitalOcean Console at https://cloud.digitalocean.com/.
- You can create a Space from the Create menu by selecting Spaces. This will take you to the Create a Space page.
- Choose a datacenter region.
- Choose to restrict file listing.
- Choose a unique name for your Space.
- After choosing your settings, click Create a Space. This will take you to the newly-created Space’s Files tab, which displays the files and folders in its root.
- Next step is to get Security credentials.
  1. Click on API on the left nav-bar.
  2. Under Spaces access keys, Click on Generate New Key.
  3. Grab the Key & secret key.
- Go to `Admin Panel -> Import & Upload Configuration -> Digitalocean Configuration`
- Edit the following options:
  1. Digitalocean Space Name - Your new bucket we created on the previous chapter
  2. Digitalocean Key - Your account access key
  3. Digitalocean Secret - Your account secret access key
  4. Digitalocean bucket region - Your new bucket region we created on the previous chapter
- if your website is freshly installed and still brand new, you can ignore the upload process below and press only on Test Connection
- Transferring files from DeepSound to Digitalocean:
  1. If you already have DeepSound installed on your server, and you want to use Digitalocean, make sure to upload the whole "upload/" folder to your bucket.
  2. We recommend to upload the folder and files via S3cmd, Setting Up s3cmd 2.x with DigitalOcean Spaces
  3. Make sure to use `--acl-public` in your command line while uploading the files.

#### How to setup FTP Storage?

You can store images and audio files in another server using this feature.

- The first step of the process is to create an FTP account on your hosting package. This will be required for the FTP configuration of your DeepSound website and it will also ensure that all files from your website are successfully uploaded to your server. You can create a new FTP account via cPanel.
- Once you have your FTP account created, you can proceed with the actual configuration of your DeepSound website. You need to access your website as administrator and go to FTP settings from `Admin Panel -> Import & Upload Configuration -> FTP Settings`
- Edit the following options:
  1. FTP Hostname - ftp.example.com (change example.com to your actual domain, or use your own domain name)
  2. FTP Username - Enter the FTP account you created in the previous chapter
  3. FTP Password - Enter the password for your FTP account
  4. FTP Port - Enter your FTP port number, default 21.
  5. FTP Path - Enter the path to /upload folder, default ./
  6. FTP Endpoint - (IP or domain where the FTP server is pointed to) example: storage.com, files will be surved from here.
- if your website is freshly installed and still brand new, you can ignore the upload process below and press only on Test Connection otherwise make sure to upload "upload/" folder to your FTP server.

#### How to setup Wasabi (FTP) Storage?

The script will upload images and audio files to Wasabi, your server's CPU load will decrease and your website performance will increase.

- Sign in to the Wasabi Console at https://wasabi.com/.
- Click On Create A bucket, and fill the required information, then create the bucket.
- Enabling FTP/FTPS
  - Click Settings on the Wasabi menu and open the FTP/FTPS drop-down.
  - Slide the option to the right. The slide option is blue when FTP/FTPS is enabled. When FTP/FTPS is disabled, the option is gray
  - A message indicates that FTP/FTPS does not comply with normal IAM policies, which could be a potential security risk.
  - If you want to continue to enable FTP/FTPS, enter agree in the message area and then click TOGGLE.
- Note: The user name and password for FTP/FTPS usage is the same as the user name and password for the root account.
- Grab those info, then go to `Admin Panel -> Import & Upload Configuration -> FTP Settings`
- Edit the following options:
  1. FTP Hostname - region.wasabisys.com (change region to your actual bucket region), Wasabi Region URLs
  2. FTP Username - Enter your Wasabi account username
  3. FTP Password - Enter your Wasabi account passsword
  4. FTP Port - 21.
  5. FTP Path - Enter the path to /upload folder, default ./
  6. FTP Endpoint - Your wasabi bucket Endpoint.

#### How to setup OneSignal?

OneSignal is used to push notifications to the user, even if the deepsound website is closed.

- Sign in to the Onesignal Console at https://onesignal.com/.
- Click on New App/Website
- Choose your app name and platform then click next.
- Fill the form with your website infromation, then click save.
- In next page, ignore the page and click on Finish.
- On top navbar, click on Keys & IDs
- Grab your OneSignal App ID & Rest API Key then go to `Admin Panel -> Mobile & API Settings -> Push Notifications Settings`
- Edit the following options for Android & IOS:
  1. OneSignal APP ID - Enter the OneSignal App ID you created in the previous chapter
  2. REST API Key - Enter the Rest API Key you created in the previous chapter
- Note: Every platform requires a new app, for example you need to create a separate app for Android, and another one for IOS.

#### How to setup Radio Station?

Radio Station is used to publish live radio stations to your website.

- Sign in to the RapidAPI Console at https://rapidapi.com/.
- Go to My Apps in top right.
- On left sidebar, click on Add New App
- Fill the required Information and click on Save
- Click on 30,000 radio stations API.
- Click on Subscribe to Test
- Fill the information then add the API to your app we created above.
- Go to My Apps again, choose your app and grab the API key.
- Go to `Admin Panel -> Settings -> Website Information -> Radio Stations Settings` Edit the following options:
  1. Enable Radio Stations by clicking on the toggle.
  2. Rapid API - Radio Stations - Enter the API key you created in the previous chapter

#### How to get Google reCaptcha key?

Google reCaptcha is required if you enable reCaptcha from Admin Panel, it is used to prevent spam accounts.

- Sign in to the Google reCaptcha Admin at https://www.google.com/recaptcha/admin.
- On the top right corner, click on the plus + icon.
- Fill the required infromation ahd choose reCaptcha v2, once selected choose "I'm not a robot" Checkbox
- Add your domain name, then click submit.
- Click on Subscribe to Test
- Fill the information then add the API to your app we created above.
- Grab and copy SITE KEY .
- Go to `Admin Panel -> Settings -> General Configuration -> Login & Registration` Edit the following options:
  1. Enable reCaptcha by clicking on the toggle.
  2. Recaptcha Key - Enter the site key you created in the previous chapter.

#### How to get YouTube API Key?

YouTube API is required to import videos and convert them to mp3.

- Go to the Google API Manager console and log in using your Google credentials.
- After this click on Create Project link for create new project.
- Enter Project Name and click on Create button.
- Select the project from the dropdown menu beside Google Cloud Platform.
- Click on APIs & Services then click on +ENABLE APIS AND SERVICES .
- Search for YouTube Data API v3 and enable YouTube Data API v3.
- Once enabled, click on Credentials, on the top nav-bar, click on +Create credentials then click on API key
- Grab the key and Click Close.
- Go to `Admin Panel -> Settings -> Import & Upload Configuration -> Songs Import Configuration` and scroll down a bit, and edit the following options:
  1. Enable YouTube Import by clicking on the toggle.
  2. YouTube API Key - Enter the API key you created in the previous chapter.
  3. Enable YouTube Video Player. (Optional)

## Social Login Setup

DeepSound comes with a lot of social login plugins, your users can register to your website with one click!
Here is a setup guide on configuring social login.

#### How to setup Facebook social login plugin?

- Log in to your Facebook account.
- Go to Facebook for Developers, click on My Apps and press Create App.
- Select Consumer. and click Next.
- Set the Display Name of your application.
- Enter the Contact Email.
- Click on Create App.
- Navigate to Facebook Login and press the Set up button.
- Select Web from the displayed platforms.
- Go to the Settings on the left nav bar section and choose Basic.
- In the appeared menu some of the fields are generated automatically. All you need to do is fill in the rest of them, such as App Domains, Contact Email, Privacy Policy URL, Terms Of Service in particular.
  1. App Domains - Enter your domain name, without http or https (example.com, www.example.com).
  2. Privacy Policy URL Enter your website's privacy policy URL (example.com/terms/privacy).
  3. Terms of Service URL Enter your website's Terms of Service URL (example.com/terms/terms).
  4. User Data Deletion Enter your website's Terms of Service URL (example.com/terms/terms).
  5. Category - Choose your app category.
- Click on Save changes.
- Go to the left nav bar section and choose Facebook Login then click on Settings .
- Scroll down a bit and find Valid OAuth Redirect URIs
- Add the following Redirect URIs:
  1. `https://yourwebsite.com/social-login.php?provider=Facebook`
  2. `https://www.yourwebsite.com/social-login.php?provider=Facebook`
- Click on Save changes
- On the top you'll see this message Your app has Standard Access to public_profile. To use Facebook Login, switch public_profile to Advanced Access Click on Get Advanced Access
  1. Enter email in the search box, then click Get Advanced Access, confirm the form.
  2. Enter public_profile in the search box, then click Get Advanced Access, confirm the form.
- Last step is to set the app mode to Live
  1. On the top navbar, you'll find App Mode, click the toggle and set the app to Live
  2. Complete Data Use Checkup (If required)
- Again, go to the Settings on the left nav bar section and choose Basic.
- Grab and copy App ID and App Secret.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Facebook Configuration` & Edit the following options:
  1. Application ID - Enter the App ID.
  2. Application Secret Key - Enter the App Secret.
  3. Enable Facebook Login.

Note: When you enter the URL of your website in to the App Domains field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Valid OAuth Redirect URIs field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup Twitter social login plugin?

- Go to apps.twitter.com and click on Sign In in the top right. Log in using your personal Twitter credentials.
- Apply for API access: https://developer.twitter.com/en/apply-for-access, without this process you can't create any apps.
- If this is your first time creating an App on Twitter. You will see a button to Create an app
- On the Create an application page, fill out all the information Twitter is asking for.
  1. App Name - Enter your website name.
  2. Application description - Enter your website description.
  3. Website URL - Enter your domain name, without http or https (example.com, www.example.com).
  4. Enable and click on Enable Sign with Twitter.
  5. Callback URLs - Enter Redirect URIs, as following:
     - `https://yourwebsite.com/social-login.php?provider=Twitter`
     - `https://www.yourwebsite.com/social-login.php?provider=Twitter`
  6. Privacy Policy URL - Enter your website's privacy policy URL (example.com/terms/privacy).
  7. Terms of Service URL - Enter your website's Terms of Service URL (example.com/terms/terms).
  8. Tell us how this app will be used - Fill the infromation.
- After you successfully created the Twitter application you’ll be redirected to its Details Tab. click on the Permissions tab. In this tab you will find a Access option. please choose Read and Write from the list, scroll down and click on the Update Settings button to save your changes.
  - Request email address from users option should be enabled for Social Login plugin.
- After you make sure, that the settings have been saved, go to the application’s API keys page by clicking on the Keys and Tokens tab.
- Grab and copy API key and API secret key.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Twitter Configuration` & Edit the following options:
  1. Consumer Key - Enter the API key.
  2. Consumer Secret - Enter the API secret key.
  3. Enable Twitter Login.

Note: When you enter the URL of your website in to the Website URL field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Callback URL field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup Google+ social login plugin?

- Go to the Google API Manager console and log in using your Google credentials.
- After this click on Create Project link for create new project.
- Enter Project Name and click on Create button.
- Select the project from the dropdown menu beside Google CLoud Platform.
- Click on APIs & Services then click on +ENABLE APIS AND SERVICES .
- Search for Google+ and enable Google+ API.
- Once enabled, click on Credentials, on the top nav-bar, click on +Create credentials then click on Oauth client ID
- In OAuth consent screen page, choose External, fill the form and click Save and Continue.
  - In Authorized domains section, make sure to add your own domain name with or without www.
- On the next page, you'll see the button Add or remove scopes, click on it.
  - Look for auth/userinfo.email and select it.
  - Look for auth/userinfo.profile and select it.
  - Scroll down and click on UPDATE.
- If you successfully added the new scopes, click on SAVE AND CONTINUE.
- Ignore the Test users section and click on SAVE AND CONTINUE.
- Scroll down and click on BACK TO DASHBOARD.
- On the next page, click on PUBLISH APP and publish your application.
- On the left nav bar, click on Credentials, on the top nav-bar, click on +Create credentials then Oauth client ID
  - In Application type, choose web application.
  - In Authorized redirect URIs, add the following URIs:
    1. `https://yourwebsite.com/social-login.php?provider=Google`
    2. `https://www.yourwebsite.com/social-login.php?provider=Google`
- Click on Create then you'll see your Client ID and Client secret, copy those keys and headback to your website.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Google+ Configuration` & Edit the following options:
  1. Client ID - Enter the Client ID.
  2. Client secret - Enter the Client secret.
  3. Enable Google+ Login.

Note: When you enter the URL of your website in to the App Domains field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Authorized redirect URIs field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup LinkedIn social login plugin?

- Go to the LinkedIn developer site: https://developer.linkedin.com/ .
- Click the Create App button on the banner.
- To correctly create the application, please fill in the application sections, which are explained below.
  - App Name - Enter a name for your application.
  - LinkedIn Page - Select an existing company or choose a New Company. If you select the new company, you will be asked to enter a company name.
  - Privacy policy URL - Enter your website's privacy policy URL (example.com/terms/privacy).
  - App logo - Upload an icon for your application.
  - Click on Create app.
- On the app page, scroll down, you'll find Additional settings, look for Domains and add your own domain name.
- On same page, scroll up and click on Auth.
- In Authorized redirect URLs for your app, add the following URIs:
  1. `https://yourwebsite.com/social-login.php?provider=Linkedin`
  2. `https://www.yourwebsite.com/social-login.php?provider=Linkedin`
- On the Auth page, you'll find Client ID and Client secret, copy those keys and headback to your website.
- Go to `Admin Panel -> Settings -> Social Login Settings -> LinkedIn Configuration` & Edit the following options:
  1. Application ID - Enter the Client ID.
  2. Application Secret Key - Enter the Client secret.
  3. Enable LinkedIn Login.

Note: When you enter the URL of your website in to the Domains field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Authorized redirect URLs for your app field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup Vkontakte social login plugin?

- Go to the VK developers page: https://vk.com/apps
- Click on Create.
- On Platform, select Website, and add your own domain name.
- To correctly create the application, please fill in the application sections, which are explained below.
  - Title - Enter a name for your application.
  - Description - Select an existing company or choose a New Company. If you select the new company, you will be asked to enter a company name.
  - Terms and Conditions URL - Enter your website's privacy policy URL (example.com/terms/terms).
  - Privacy policy URL - Enter your website's privacy policy URL (example.com/terms/privacy).
  - App logo - Upload an icon for your application.
  - Click on Save.
- On the left sidebar, click on Settings
- In this page, look for Authorized redirect URI, add the following URIs:
  1. `https://yourwebsite.com/social-login.php?provider=Vkontakte`
  2. `https://www.yourwebsite.com/social-login.php?provider=Vkontakte`
- In the same page, you'll find App ID and Secure key, copy those keys and headback to your website.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Vkontakte Configuration` & Edit the following options:
  1. Application ID - Enter the App ID.
  2. Application Secret Key - Enter the Secure key.
  3. Enable Vkontakte Login.

Note: When you enter the URL of your website in to the Website URL field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.
Use the same URL for the Authorized redirect URI field.
If these entries do not completely match the URL of your website, the application won’t work and it will show an error message when you try to connect to the App.

#### How to setup Discord social login plugin?

- Visit Discord developer portal and sign in with your discord app developer account.
- On the page, Click on the New Application button and enter a Name for your app. Click on Save.
- Click on OAuth2 form left section.
- Click on Add redirect and Enter Callback URL in that (Redirects), add the following URIs:
  1. `https://yourwebsite.com/social-login.php?provider=Discord`
  2. `https://www.yourwebsite.com/social-login.php?provider=Discord`
- In the same page, you'll find Client Id and Client Secret, copy those keys and headback to your website.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Discord Configuration` & Edit the following options:
  1. Application ID - Enter the App ID.
  2. Application Secret Key - Enter the Secure key.
  3. Enable Discord Login.

Note: When you enter the URL of your website in to the Callback URL field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.

#### How to setup Mailru social login plugin?

- Go to https://o2.mail.ru/app and sign in with your Mail.ru app developer account.
- Go to Apps and click on Create an Application.
- Enter App name in Project name field.
- Enter Redirect URI, add the following URIs:
  1. `https://yourwebsite.com/social-login.php?provider=Mailru`
- Click on Connect Site
- On the same page you will get your Client ID and Client Secret under the Editing the Application section.
- Go to `Admin Panel -> Settings -> Social Login Settings -> Mailru Configuration` & Edit the following options:
  1. Application ID - Enter the Client ID.
  2. Application Secret Key - Enter the Client secret.
  3. Enable Mailru Login.

Note: When you enter the URL of your website in to the Redirect URI field, make sure that it does match the URL of your website 100%.
This means, if you go to your website and then check the URL in the browser and the URL does look like http://www.domain.com then you need to enter the exact same URL. If your website URL is http://domain.com then you need to enter it that way, without using the www at the front of the name.

#### How to setup WoWonder social login plugin?

If you are using WoWonder script, you can integrate your site with DeepSound.

- Login into your website that is using WoWonder script as admin.
- Go to https://yourwebsite.com/create-app, replace yourwebsite.com with your own domain name.
- To correctly create the application, please fill in the application sections, which are explained below.
  - Name - Your application name. This is used to attribute the source user-facing authorization screens. 32 characters max.
  - Domain - Enter your website URL (That is using DeepSound Script).
  - Redirect URI - `https://yourwebsite.com/wo_login.php`, replace yourwebsite.com with your own domain name (That is using DeepSound Script).
  - Description - Your application description, which will be shown in user-facing authorization screens. Between 10 and 200 characters max.
  - Image - Upload an icon for your application.
  - Click on Create.
- Get your App ID and App Secret.
- Go to `Admin Panel -> Settings -> Social Login Settings -> WoWonder Configuration` & Edit the following options:
  1. API Key - Enter the App ID.
  2. API Secret - Enter the App Secret.
  3. WoWonder Domain - Enter your website URL (That is using WoWonder Script).
  4. WoWonder Icon - Enter your icon image URL (That is using WoWonder Script), example: `https://demo.wowonder.com/themes/default/img/icon.png`
  5. Enable WoWonder Login.

#### How to setup Instagram social login plugin?

Unfortunately, Instagram is not accepting any new applications anymore.

The remaining Instagram Legacy API permission ("Basic Permission") was disabled on June 29, 2020. As of June 29, third-party apps no longer have access to the Legacy API.

#### QQ

- Although not detailed in this configuration guide, you can create a new QQ app that enables users to log on to your web site by using their QQ account. To create a QQ developer account, you must complete a registration process that includes such tasks as providing a copy of your business license.
- If you already have a QQ developer account, you can create a social login app from the QQ developer’s site https://connect.qq.com

Unfortunately, We could not obtain a developer account with QQ, therefore we are not pretty sure how to create an app and retrive the app keys.

#### WeChat

- Although not detailed in this configuration guide, you can create a new WeChat app that enables users to log on to your web site by using their WeChat account. To create a WeChat developer account, you must complete a lengthy application process that requires supplying information such as your personal ID and business license
- If you already have a WeChat developer account, you can create a social login app from the WeChat developer’s site https://open.wechat.com/

Unfortunately, We could not obtain a developer account with WeChat, therefore we are not pretty sure how to create an app and retrive the app keys.

#### How to setup SoundCloud social login plugin?

Unfortunately, SoundCloud is not accepting any new applications anymore.

Due to the high amount of requests recently received, we will no longer be processing API application requests at this time. We are working to re-evaluate our process to make it more efficient.

## Payment Gateways Setup

A setup guide on configuring all payment gateways.

#### Stripe

- Go to Stripe & create a new account.
- Login to your dashboard & turn your account on by flipping the switch from “Test” to “Live”.
- Click Activate Account in the pop up window to fill out the standard business details Stripe needs to send you payments.
- Once you’ve completed the entire form, click Activate Account.
- Now that your account is live, go to Your Account and click on Account Settings.
- Click the API Keys tab & copy the Live Secret Key & Publishable Key.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find Stripe and edit the following options:
  1. Enable Stripe Payment Method by clicking on the toggle.
  2. Stripe version - v2 or v3.
  3. Stripe API Secret Key - Your Stripe secret key that starts with sk_
  4. Stripe Publishable Key - Your Stripe publishable key that starts with pk_

#### PayPal

- Login to PayPal, then click here: https://developer.paypal.com/developer/applications/create
- Set your app name, email address then click Create App.
- On the top right side, you can see two tabs, SandBox and Live, Choose Live.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find PayPal and edit the following options:
  1. Enable PayPal Payment Method by clicking on the toggle.
  2. PayPal Mode - Choose Live (In case your app is in Live mode).
  3. PayPal Clinet ID - PayPal application ID you created in the previous chapter.
  4. PayPal Secret Key - PayPal application secret key you created in the previous chapter.

#### CashFree

- Go to Cashfree website & sign in to your account with a registered email address.
- Click on Activate button to activate various payment gateways for your account.
- Now, you can click on View Dashboard to view account details.
- Go to Credentials tab to access the test API credentials for payment gateways.
- Click on Get Credentials tab to access the sandbox credentials
- View app ID & secret key under Test Credentials tab.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find CashFree and edit the following options:
  1. Enable CashFree Payment Method by clicking on the toggle.
  2. CashFree Mode - Choose Live (In case your app is in Live mode).
  3. Client ID - CashFree application ID you created in the previous chapter.
  4. Client Secret - CashFree application secret key you created in the previous chapter.

#### RazorPay

- Go to the Razorpay website and Sign Up.
- Enter your work email address and a password for your Razorpay account and click Create Account.
- Fill Pre-sign Up Form
- Verify Email Address
- Once your account is created, you have access to the Test mode on the Dashboard. Test mode is used for testing purposes and does not involve actual money transactions. However, you would need to activate your account in order to accept live payments.
- To create an Application, follow this RazorPay Guide.
- Once your application was created, take the required keys then go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find RazorPay and edit the following options:
  1. Enable RazorPay Payment Method by clicking on the toggle.
  2. Application ID - CashFree application ID you created in the previous chapter.
  3. Application Secret - CashFree application secret key you created in the previous chapter.

#### PayStack

- Sign Up with Paystack
- Verify your sign up using a verification link sent to your email.
- The next thing is to sign in to your new Paystack account
- On your Dashboard you will find your public and secret key
- Grab the keys, then go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find PayStack and edit the following options:
  1. Enable PayStack Payment Method by clicking on the toggle.
  2. Secret Key - CashFree application secret key you created in the previous chapter.

#### PaySera

- Sign up with PaySera then Log in to your account. In the menu on the left choose Settings > Profile Settings > Service management > Change.
- Select Collection of payments online via e-banking and other systems and click on Order
- In the left menu please select Projects and Activities > My projects and click on Add a new project.
- In the opened window, enter data of a new project: In the section Service provider enter your online domain name.
- If you are not using any platform, select I will enter the project address manually and enter the website address.
- If you are using a platform, then in the section I will use a platform, a list of platforms will be provided and, after selecting one of them, the address used will be entered automatically.
- In the section Service description briefly describe the services you provide. If you are selling physical goods, enter the refund policy and delivery terms. More information on the description of the project is provided here.
- You can change the information and service description later as needed: Enter the current phone number and email address in the section Contact details. If required, also specify other contact details, e.g. Skype. These contact details will be provided to your buyers together with a payment confirmation letter. The project ownership confirmation code is provided in the section Project confirmation; you should paste it in your website’s head section. This way we will be sure that you are the real owner of the website. Having completed the requested information, click on Save project.
- Make sure that the website already contains purchase and sale, delivery and refund terms, privacy policy and your contact details as a merchant. Submit the project for review only when the website has been fully prepared to be used by clients, the payment platform has been integrated and test payments have been performed. Your submitted project will be reviewed within one day.
- After creating a project, you will be provided with the data necessary for the technical integration of the payment platform
  1. In the menu on the left under Projects and Activities > My projects you will find the project ID (Project number/projectid);
  2. In the menu on the left under Projects and Activities > My projects click on Project settings > General project settings and you will find the code required to confirm ownership of your website;
  3. In the menu on the left under Projects and Activities > My projects click on Project settings > General project settings and you will find your project password.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find PaySera and edit the following options:
  1. Enable PaySera Payment Method by clicking on the toggle.
  2. PaySera Mode - Choose Live (In case your app is in Live mode).
  3. Project ID - PaySera project ID you created in the previous chapter.
  4. Account Password - Your PaySera project password.

#### Iyzipay

- Create an account in Iyzipay
- You can access the API and Security Key values, where you can test the services from the Settings menu, without the need for email activation
- Grab the keys then go to `Admin Panel -> Payments & Ads -> Payment Configuration` paste the keys in Iyzipay form and fill the rest of the infromation.

#### 2Checkout

- Go to: https://secure.2checkout.com/cpanel/ and Sign in with your 2Checkout live account or create a new one.
- Now click on Integrations -> Webhooks & API and from API section, copy Merchant Code, Publishable Key and Private Key
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find 2checkout and edit the following options:
  1. Enable 2checkout Payment Method by clicking on the toggle.
  2. 2checkout Mode - Choose Live (In case your app is in Live mode).
  3. Seller ID - Your Merchant ID.
  4. Publishable Key - Publishable Key you copied in the previous chapter.
  5. Private Key - Private Key you copied in the previous chapter.

#### PayU

- Go to https://www.payumoney.com/, If you have created an account with PayUMoney, login, else Create Account.
- Once you have logged in into your account, click on Integration Details option under Integration Help
- Here are your Live Credentials - Merchant Key and Merchant Salt. Copy them.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find PayU and edit the following options:
  1. Enable PayU Payment Method by clicking on the toggle.
  2. PayU Mode - Choose Live (In case your app is in Live mode).
  3. Merchant ID - Your Merchant ID you copied in the previous chapter.
  4. Secret Key - Secret Key you copied in the previous chapter.

#### Authorize.Net

- Log into the Merchant Interface.
- Click Account from the main toolbar.
- Click Settings in the main left-side menu.
- Click API Credentials & Keys.

- Select New Transaction Key.

  Note: When obtaining a new Transaction Key, you may choose to disable the old Transaction Key by clicking the box titled, Disable Old Transaction Key Immediately. You may want to do this if you suspect your previous Transaction Key is being used fraudulently.
- Click Submit to continue.
- Request and enter PIN for verification.
- Your new Transaction Key is displayed.
- If the Disable Old Transaction Key Immediately box is not checked, the old Transaction Key will automatically expire in 24 hours. When the box is checked, the Transaction Key expires immediately.
- Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find Authorize.net and edit the following options:
  1. Enable Authorize.net Payment Method by clicking on the toggle.
  2. Authorize.net Mode - Choose Live (In case your app is in Live mode).
  3. Authorize.Net API LOGIN ID - Your API Login ID.
  4. Authorize.Net TRANSACTION KEY - TRANSACTION KEY you copied in the previous chapter.

#### SecurionPay

- You can find a detailed doc here: https://securionpay.helpjuice.com/90032-backoffice/529474-api-keys
- Once you got your keys, Go to `Admin Panel -> Payments & Ads -> Payment Configuration`, find Securionpay and edit the following options:
  1. Enable Securionpay Payment Method by clicking on the toggle.
  2. Securionpay Public key - Your Public key you copied in the previous chapter.
  3. Securionpay Secret key - Secret Key you copied in the previous chapter.

## DeepSound Features

General Information about DeepSound features.

### Languages

##### How to add a new language?

- You can add new languages from `Admin Panel > Languages > Add New Language & Keys -> Add New Language`.

##### How to set the default language?

- You can set the default language from `Admin Panel > Settings > General Configuration > Default Language`.

##### How to add a new language key?

- You can add new languages from `Admin Panel > Languages > Add New Language & Keys -> Add New Key`.

### Categories

##### How to edit, delete and add song / products categories?

- You can manage store categories from `Admin Panel > Store > Manage Product Categories`
- You can manage songs categories from `Admin Panel > Songs > Manage Categories`

### SEO & Pages

##### How to edit pages SEO tags?

- You can edit page SEO tags from `Admin Panel -> Pages -> Manage Pages SEO`

##### How to edit terms, policy, about, or DMCA pages?

- You can edit those pages from `Admin Panel -> Pages -> Manage Pages`

### Artists System

##### What is Artists System?

- With Artists System, users can upgrade their features. After becoming Artists in your website, they can:
  1. Get verified.
  2. Sell Songs.
  3. Create Events.
  4. Get Special Looking Profile.
  5. Sell Products.

##### How to become an artist?

- Users can become artists from `Account DropDown Menu -> Become an artist`.

### Pro System

##### What is Pro System?

- Pro System is a monthly subscription feature, with Pro system users can:
  1. Upload unlimited songs.
  2. Get Pro Badge (On profile picture).
  3. Show their songs on Spotlight page.
  4. Download songs.

##### How to turn on Pro System?

- You can turn Pro System On/Off from `Admin Panel -> Pro System -> Pro System Settings`

##### How Pro System Payment works?

- Monthly subscription, paid by user's wallet.

### Advertising System

##### What is Advertising System?

- Advertising System is a money earning feature, users can post ads in your website, with Advertising system users can:
  1. Upload Image Ads, to home page, sidebar and profile pages.
  2. Upload Audio Ads, play audio ads before the song starts, charged by CPC.
  3. Pay by CPC/CPM.
  4. Monetization their songs and earn money from advertisers.

##### How to turn on Advertising System?

- You can turn Advertising System On/Off from `Admin Panel -> Payment & Ads -> Advertisement System`

##### How Advertising System Payment works?

- CPC, CPI, paid by user's wallet.

##### What is CPC, CPI?

- CPC mean Cost per click, how much will the system charge the user from ad click?
- CPI mean Cost per impression, how much will the system charge the user from ad view?

### Store System

##### What is Store System?

- Store System is a money earning feature, users can sell their products in your website, with Store system users can:
  1. Upload products related to their songs.
  2. Sell their own goods and earn money.

##### How to turn on Store System?

- You can turn Store System On/Off from `Admin Panel -> Store -> Store Settings`

##### How Store System Payment works?

- One time payment, paid by user's wallet.

##### How much commission I can get from a sale?

- You can control how much you want to earn from each sale from `Admin Panel -> Store -> Store Settings -> Sales Commission`

### Events System

##### What is Events System?

- Events System is a money earning feature, users can create events and sell their tickets in your website, with Events system users can:
  1. Create real/online events.
  2. Sell tickets, with admin commissions.

##### How to turn on Events System?

- You can turn Events System On/Off from `Admin Panel -> Events -> Events Settings`

##### How Events System Payment works?

- One time payment, paid by user's wallet.

##### How much commission I can get from a ticket sale?

- You can control how much you want to earn from each ticket sale from `Admin Panel -> Events -> Events Settings -> Sales Commission`

### Digtial Music System

##### What is Digtial Music System?

- Digtial System is a money earning feature, users can sell their own songs & music in your website, with Digtial Music system users can:
  1. Sell their own music, with admin commissions.

##### How to turn on Digtial Music System?

- You can turn Digtial Music System On/Off from `Admin Panel -> Settings -> General Configuration -> Song & Player Settings -> Can artist sell songs?`

##### How Digtial Music System Payment works?

- One time payment, paid by user's wallet.

##### How much commission I can get from a song sale?

- You can control how much you want to earn from each song sale from `Admin Panel -> Settings -> General Configuration -> Song & Player Settings -> Sales Commission`

## How To Update DeepSound?

A detailed documentation on how to update your website to a new update. Don't worry the update process is very easy!

- First of all, you have to download the latest version from your codecanyon Downloads page.
- Backup your website files & database using cPanel.

- Once you have downloaded the script, you can find the update files in `./Update Guide` folder, as shown below:

- Choose the update version, and extract it to your Desktop.

  Note: If you have missed an update or multiple updates, you have to update your site version by version manually. Please don't skip a version.

- The extracted files structure should look like this:

- Upload `./update.php` to your server using FTP client: /path/to/deepsound/update.php (Script root directory)

- Open the `./Script/` folder, upload and overwrite ALL files/folders (SELECT ALL) file(s) located inside `./Script/` folder to your server, if you have renamed your theme, please open `./Script/themes/default/` and upload & overwrite ALL files/folders to your theme folder as shown below:

- Once the files are uploaded, open and run http://www.YOURSITE.COM/update.php (replace YOURSITE.com with your domain).

- The update process may take up to 1 hour, once the update is done please go to Admin Panel and scroll down to verify the website has been updated as shown below:

Important! Please note that you may lose any custom work you done on the code if you update your script. Contact your developer to update your website without losing any custom features.

## Code Customization

We have included a Custom CSS/JS Files in the code so that you can better handle your Customizations for New Styles or Overwriting Default Theme Styles. Simply add all your Custom CSS/JS Codes in `Admin Panel -> Design -> Custom Design`

##### Where can I modify the HTML tamplates?

- You can find the layout files in `./themes/default/layout/`
- The files extention is .html

##### Where can I edit the stylesheet from?

- You can edit the stylesheet from `./themes/default/css/`
- The general style file is: style.css

##### Where I can add my own code inside head/body/footer tags?

- You can do that from `./themes/default/layout/container.html`

##### How can I create new themes?

- Make a copy of ./themes/default/ folder, rename it, open ./YOUR_THEME/info.php and change the requested info there.
- Once you have changed the info, save the file, go to you `Admin Panel -> Design -> Themes`, and you'll find your theme there, under your theme name, click on activate.

##### How to edit & customize email templates which are sent for users?

- You can do that from `Admin Panel -> Tools -> Manage E-mails`

##### How can I edit the footer menu?

- You can edit the footer from: `./themes/default/layout/footer/`

##### Where are javascript files located?

- You can edit the javscript code from `./themes/default/js/`
- The general javascript file is: script.js
- Some JS functions are located at `./themes/default/layout/extrajs/content.html`

## Common Issues

We listed some common issue you should be aware of and know how to fix them.

##### Why I get 500 internal service error?

This may cause due folder permission error, or apache issue, please contact your host provider and let them fix it for you. Please note this is not a script problem.

##### I can't upload big songs, what to do?

Contact your server provider, and ask them to increase post_max_size, max_execution_time and upload_max_filesize in PHP.ini file. Please note this is not a script problem.

##### Why I get 404 when I visit some pages?

Please make sure that the .htaccess file is uploaded to your server and updated to latest version.

If the file is exists, but you still face this issue, please contact your host provide, and let them enable mod_rewrite.

If you are using a VPS with Ubuntu Linux installed, please follow this guide.

If you use Nginx in your server, please follow the last step in the installation page.

##### My SMTP config is correct, but my website is not sending any emails?

Please test your SMTP credentials at SMTPER, if the same config worked by the test, please contact us.

## FAQs

A FAQ is a list of frequently asked questions (FAQs).

##### What PHP framework DeepSound is built on?

We don’t use any third party PHP frameworks, the script is built on Pure PHP code, we use our own framework basically.

##### Can I customize DeepSound?

The code is open source, you can edit, add, remove any code you would like.

##### Which hosting provider do you recommend for DeepSound?

We recommend you to use UltaHost, UltaHost is powered by us, we added the best configuration possible to run DeepSound fast and smoothly.

##### Can I use this platform on multiple domains?

With one purchase code you can use it on one domain name. You need to get new license for every new domain name, please check Envato Help Page for more information about licenses.

##### I got a problem, How can I get support?

If you need support, or if you're facing any problems, please contact us via Envato Support
Please note that our respond can take up to 2 business days.

##### What does the support include?

- Availability to answer questions, Answering technical questions about item’s features, Assistance with reported bugs and issues, Help with included 3rd party assets.
- Any customization request will be ignored.
- Please make sure to read more about the support policy.

## Support

If this documentation doesn't answer your questions, So, Please send us Email via Item Support Page

We are located in GMT +5:30 time zone and we answer all questions within 12-24 hours in weekdays. In some rare cases the waiting time can be to 48 hours. (except holiday seasons which might take longer).

Note: While we aim to provide the best support possible, please keep in mind that it only extends to verified buyers and only to issues related to our template like bugs and errors. Custom modifications or third party module implementations are not included.

#### Don’t forget to Rate DeepSound!

Please Add your Review (Opinion) for Our template. It would be a great support for us.
Go to your CodeCanyon Profile > Downloads Tab > & then You can Rate & Review for our script.
Thank You.

## Changelog

See what's new added, changed, fixed, improved or updated in the latest versions.

### Version 1.4.5 (26 Jan, 2022)

- Added ffmpeg debug system, now you can debug the output of the ffmpeg
- Fixed uploading albums was not working.
- Fixed email confrimation was not working.
- Fixed price not showing on events and purchased page.
- Fixed few minor bugs.
- Optimized database table indexes.

### Version 1.4.4 (22 Jan, 2022)

- Added Google Drive Storage, now you can upload directly to your own drive account.
- Fixed few minor bugs.
- Updated documentation, https://docs.deepsoundscript.com/

### Version 1.4.3 (13 Jan, 2022)

- Added Earn Points link to the left navbar.
- Added the ability to withdrawal points as real money.
- Added the ability to earn points by listening to songs.
- Added the ability to add, edit or remove currencies from Admin Panel -> Payments & Ads -> Manage Currencies.
- Moved Point System Settings from Website Information to General Configuration.
- Fixed design bugs in volcano theme.
- Fixed few minor bugs in backend.
- Organized HTML modals.
- Organized CDN links, now all js/css libraries are loaded from your server.

### Version 1.4.2 (02 Jan, 2022)

- Fixed digitalocean spaces upload/test issues.
- Fixed onesignal blank page issue.
- Fixed wallet was not updating after purchasing an item from store.
- Fixed SMTP encryption value in admin panel.
- Fixed delete system for categories.
- Fixed play full album problem, it was hanging.
- Fixed Admin Panel -> SEO page loading issues.
- Orginzed CSS files, removed any inline css code.
- Updated documentation, https://docs.deepsoundscript.com/

### Version 1.4.1 (10 Dec, 2021)

- Fixed edit / add categories from admin panel.
- Fixed paystack payment system.
- Fixed create announcements system.
- Fixed social login system, VK / Mailru & Discord.
- Fixed "You may also like" in product page was showing user avatar instead of item picture.
- Fixed you can see only last story if you have multiple stories.
- Fixed slow youtube video player.
- Improved speed.
- Updated documentation.

### Version 1.4 (24 Nov, 2021)

- Added razorpay, securionpay, payu, paystack, iyzipay, checkout, cashfree & authorize.net payment methods.
- Added the ability to import songs from YouTube + Video Player.
- Added events system, artists can create events and sell tickets + admin commission.
- Added store system, artists can sell items related to their song + admin commission.
- Added the ability to upload video trailer as channel cover or musician into.
- Added story system, users can upload stories with audio only, free & paid stories.
- Added the ability to edit SEO tags for each page.
- Added digitalocean spaces support.
- Added LinkedIn, Vkontakte, Instagram, QQ, WeChat, Discord & Mailru social login.
- Added manage emails and user invitation system to admin panel.
- Added 24 link validation for reset password.
- Added the ability to edit SEO from admin panel.
- Added more APIs
- Fixed 15+ minor reported bugs..
- Improved speed.

### Version 1.3.5 (21 May, 2021)

- Fixed PayPal on PHP 8.0
- Fixed audio embed issue on other sites.
- Fixed spotlight page (500 Internet Error) on PHP 8.0
- Fixed ajax load on admin panel (wasn't loading all the page).
- Fixed (500 Internet Error) in admin panel's dashboard.
- Fixed report a song in "latest songs" page in user profile.
- Fixed 3+ minor reported bugs.

### Version 1.3.4 (20 April, 2021)

- Added ability to tip artists (enable/disable).
- Added hall of fame for artists (new page) (enable/disable).
- Added admin panel notifications.
- Added ability to tag other artists to show they performed together (enable/disable).
- Added new admin panel, v2 with ajax load and faster load.
- Added ability to limit the amount of characters in comments.
- Added support for PHP 8.0+ and MySQL 8.0+
- Added more APIs
- Fixed 15+ minor reported bugs..
- Improved speed.

### Version 1.3.3 (04 Oct, 2020)

- Added ability to restrict rights of certain user from uploading / importing a song.
- Added auto friend function in admin panel.
- Added ability to mention @ someone in the comments.
- Added point system, users can earn points by doing several activities in the site.
- Added ability for user to post blogs.
- Added ability to reply comments.
- Added more APIs
- Fixed 25+ minor reported bugs..
- Improved speed.

### Version 1.3.2 (22 May, 2020)

- Added more APIs
- Fixed 20+ minor reported bugs..
- Improved speed.

### Version 1.3.1 (13 May, 2020)

- Added the ability to add custom pages.
- Added affiliate system.
- Added ability to upload a folder to an album.
- Added ability to set discover as landing page (enable/disable).
- Added Itunes importer and Itunes affiliate system.
- Added the ability to import songs from deezer.
- Added audio ads, user can create ads in audio.
- Added the option for admin to only upload.
- Added the option for artists to only upload.
- Added the ability to like blog comments.
- Added more APIs.
- Fixed 30+ minor reported bugs..
- Improved speed.

### Version 1.3 (03 Dec, 2019)

- Added blog system (only admin can create blogs).
- Added Advertisement: Display ads on your websites.
- Added Ability to import from sound cloud.
- Added Ability to Login via soundcloud.
- Added Ability to add preexisting single/song into an album.
- Added Ability to edit/move song position in an album.
- Added Ability to review song.
- Added custom fields.
- Added DMCA page.
- Added Notification management system (Users can choose what kind of notifications they want to get).
- Added Session manager (users can view / manage browser / platforms where they are logged in).
- Added Two-factor authentication system using email or phone.
- Added Confirmation system when user login from new location.
- Added Twilio API for sending SMS messages.
- Added new APIs.
- Added Mass notifications.
- Added Invitation Codes.
- Added Radio stations.
- Fixed 20+ minor reported bugs..
- Improved speed.

### Version 1.2.1 (08 Nov, 2019)

- Added new theme (Volcano)
- Fixed 5+ minor reported bugs..
- Improved speed.

### Version 1.2 (13 Aug, 2019)

- Added statics for each song, each album, this week, this month, today's views, likes, dislikes, etc.
- Added bulk upload, one click, user can select 10+ songs in albums.
- Added lyrics, user can upload lyrics to song.
- Added the ability to disallow or allow download and embed features.
- Fixed 5+ minor reported bugs..

### Version 1.1 (04 Jun, 2019)

- Added option for admin to disable sell option, artist won't be able to sell.
- Added more payment methods, bank and stripe.
- Added earnings page in admin panel, to view site's latest sales and earnings, pro sales + song / albums sales.
- Added purchases count in song page.
- Added dislike system, user can now like or dislike a song.
- Added search to manage playlists in admin panel.
- Added search to manage albums in admin panel.
- Added more currencies.
- Added push notifications.

### Version 1.0 (8 Apr, 2019)

Initial release.

## License

DeepSound is made by DoughouzForest under Envato Extended & Regular License.

##### What is the different between Extended and Regular license?

- An Extended License is required if the end user must pay to use the end product, means that you should own an extended license if you will charge your end users.
- Both versions are similar, same features, updates and support services.
- Both can be used one domain only, means you need a license for every domain.

## More PHP Scripts

Checkout Our Below Premium PHP Scripts Made by DoughouzForest

###### WoWonder - The Ultimate PHP Social Network Platform

###### PlayTube - The Ultimate PHP Video CMS & Video Sharing Platform

###### QuickDate - The Ultimate PHP Dating Platform

###### PixelPhoto - The Ultimate Image Sharing & Photo Social Network Platform

###### Flame - News, Viral Lists, Quizzes, Videos, Polls and Music

###### AskMe - The Ultimate PHP Questions & Answers Social Network Platform

Our Portfolio