This project aim to help digital marketing professional to improve their Google Ads placements on YouTube campaign. It's always frustrating to see part of campaign budget going to videos with kid content, undesired topic like music or wrong spoken language. Unfortunately exclusion list available online are not the most reliable and up to date.
This graphic user interface will help you to build along your campaign custom YouTube channel exclusion list.
1st option - Install YouTube Exclusion List Builder with executable file.
You can download the application here YouTube-Exclusion-List-Builder for macOS or Windows.
On Mac, you will most probably face an error message while executing the file like
YouTube-Exclusion-List-Builder can’t be opened because Apple cannot check it for malicious software.
.
To avoid this, go in the System Preferences > Security and Privacy and you should see a section where it says
that the app was blocked from use. Click on open anyway. Wait a minute and you should see the app open.
Find more info on this topic here.
2nd option - Install YouTube Exclusion List Builder with command line.
This project requires python 3.10 you can download it here.
git clone https://github.com/seexmax/YouTube-Exclusion-List-Builder.git
Open the project directory with cd
and install the requirements.
pip install -r requirements.txt
On Ubuntu and other Debian-based Linux distributions you will also need to install tkinter.
sudo apt install python3-tk
In the project directory run main.py
file to execute the application.
python3 main.py
The application is made of two tabs.
- The first tab is where you will upload the Excel file with the YouTube channels you want to check.
Please note that you need to use the template available
here
for formatting purposes. Only
.xlsx
format can be uploaded on the application.
![](https://private-user-images.githubusercontent.com/96994915/311519791-a41f0f31-cdec-4543-9aa9-8f59bb8db0e6.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk3OTEtYTQxZjBmMzEtY2RlYy00NTQzLTlhYTktOGY1OWJiOGRiMGU2LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY2NTkwY2UzN2EyMWVlMjRiYmE1NjU3NjU0YTZhZWU0ZWIwOTA3MmZmNzQyYmM4OWRhNGQ4NzQ4ODkzNGNiNDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.wm6nXEv18y3DVbt-BHDgtVO64AY9haWpkGEnJecTXcM)
- On the second tab you need to enter your YouTube API token. If you don't know to get one you can click on
How to get a token ?
. Instructions to get a token will be shown. Note that a token is limited to 10.000 requests per day. If you would like to process more than 10.000 channels you will need to use multiple API token or wait the next day.
![](https://private-user-images.githubusercontent.com/96994915/311519825-ccb62a79-a602-4768-86ee-c854e1875447.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk4MjUtY2NiNjJhNzktYTYwMi00NzY4LTg2ZWUtYzg1NGUxODc1NDQ3LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI2OTE2ZDI0M2ExMTE0NGIwNjJiZDcxYjc2NzY5ZTdiNDYzNmViYzU5MzA3YWE3ZmI5OWQzNGM1OTQ4N2U1OWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.INXCyucOUw7GAtaqBdn5RLuRZQg8bwJXiHtFpYW3r8k)
Once you enter a valid token and upload an Excel file matching the template, the application will show you
how many channels are in your file. Note that the button Process channels
is now clickable to start the process.
![](https://private-user-images.githubusercontent.com/96994915/311519846-595494ff-8921-4363-bddd-a652677f4259.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk4NDYtNTk1NDk0ZmYtODkyMS00MzYzLWJkZGQtYTY1MjY3N2Y0MjU5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjZGQ4ZGUzZmVjM2FhNGE4MmJhNjY5MzQ5YjUzNmYzNGQ1ZWU3NTVhYTc5OThiNjQzMzlhYTBmNzAxNDk1ZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.WjNJhsW2yh9Wm4PFhaw-W1L4NrEkDVwWZb3RVsKNEAM)
As the application processes the channels, the time left will be displayed. At anytime during the process you can click
on Stop & Save
, it will interrupt the process and save the data collected in your file.
![](https://private-user-images.githubusercontent.com/96994915/311519870-f521aeda-de50-478d-ab76-fb8a68353148.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk4NzAtZjUyMWFlZGEtZGU1MC00NzhkLWFiNzYtZmI4YTY4MzUzMTQ4LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE2NmU2YWE5NDQyNTQ5MTA2N2QyOTdmZDMzNWViNmRiNWNjODNmMjgxYjViNzdkZjJhZTY3ZDIxMmIzZDczMTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2tzgY0Xo_kY8b1dCVygxr639zy7MtBiEYekgWl-LNoc)
When the application is done, or you used Stop & Save
, the data collected will be saved in your file on a new tab named
Results
.
![](https://private-user-images.githubusercontent.com/96994915/311519874-9acf09cf-28f4-4f55-8d8f-e2181de8e360.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk4NzQtOWFjZjA5Y2YtMjhmNC00ZjU1LThkOGYtZTIxODFkZThlMzYwLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhMWQxMWQyNjJlMDhlOWNmNmFiYTI3NDU4OGQ3ZWIxYTRjNmE4Njc1MzhiMWE5ZDQ2ZWMwOTk5NTkzMWQ0YzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ngZWTr0wi9oNPBitBaGpeBCGkldkSq9aIjrgEPUHS6I)
If you didn't process all the channels of your file because you reached the quota limitation of your token, or you used
Stop & Save
, you can always upload again your file to process the remaining channels. The application will automatically
detect your Results
tab and start from where you left.
You can see from the example of the demo that the channels to process went from 9.750 to 9.096 when I upload the file
again.
![](https://private-user-images.githubusercontent.com/96994915/311519881-04bf958c-5773-4962-b917-6f65db9b7480.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zMTE1MTk4ODEtMDRiZjk1OGMtNTc3My00OTYyLWI5MTctNmY2NWRiOWI3NDgwLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEwNmY4YWVkNDg2NTIzYTRhZWQ0YzlhNTMzMzk5ODljOTE2ZTlkOTVlMjVmZmMyOWUwNTE3OTAxOWUzZTM3MjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7HuxgdMLN1sV3JWgmNJNBDP_Mfz_-OScaprqlU41vXk)
The results in your Excel file.
When the process is complete your data will be saved in the Results
tab. Note that the number of channels in your Data
tab and in the Results
tab may be different. The application will automatically remove duplicate rows. You will see four
new columns, madeForKids
which indicates if the channel is made for kids or not. Description
which contains the
description of the channel. Default Language
which is the main language used on the channel. Topic
which describe the
content type of the channel. You can now filter with any element you want and build your exclusion list.
![Screenshot_8](https://private-user-images.githubusercontent.com/96994915/357378563-95b13807-22df-41db-89d5-403ec23e1c94.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxNTgxMDcsIm5iZiI6MTcyNjE1NzgwNywicGF0aCI6Ii85Njk5NDkxNS8zNTczNzg1NjMtOTViMTM4MDctMjJkZi00MWRiLTg5ZDUtNDAzZWMyM2UxYzk0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTEyVDE2MTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcyZmM0MDk3OWExZWRlNjk0MDU3MTYxNzA2ZjUzMmRjYTA5NGYxMjYxZWIwZjU1ZDdmOWVhNGQ1ZjA3YjQzYmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.IoGDuCmEN12T-_gOpxABcTJtN3DUbvihgHx98wYgB1c)
The Description
column is also useful when 'No data' appears in madeForKids
. You can use the Find & Replace Excel tool
to search for keywords such as 'kids' or 'fairytale' and add the matching channels to your list.
v2.0 [released]
- Additional filtering options such as language. [done - language and topic now available]
- Moving the application to a more general exclusion list builder. [done]
- Standalone executable for v2.0 [macOS done, Windows pending]
v2.1 [working in progress]
- Improve performance by using pandas' db feature to better manage the channels to process. [done - pandas appears to be heavy for the standalone executable. optimization have been done with another approach]