<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Como permitir canais específicos do YouTube in Português</title>
    <link>https://community.checkpoint.com/t5/Portugu%C3%AAs/Como-permitir-canais-espec%C3%ADficos-do-YouTube/m-p/124092#M41</link>
    <description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="6" color="#FF00FF"&gt;&lt;A target="_blank" name="_Toc77203145"&gt;&lt;/A&gt;&lt;FONT color="#000000"&gt;Como permitir canais específicos do YouTube&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Security Engineering Brazil&lt;/P&gt;
&lt;P&gt;Julho, 2021&lt;/P&gt;
&lt;P&gt;Versão 02&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Autor:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thiago Mourao, SE&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Revisão:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Contents&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203049" target="_blank" rel="noopener"&gt;Como permitir canais específicos do YouTube&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203050" target="_blank" rel="noopener"&gt;Objetivo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203051" target="_blank" rel="noopener"&gt;Aviso&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203052" target="_blank" rel="noopener"&gt;Limitações e Requisitos&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203053" target="_blank" rel="noopener"&gt;Topologia&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203054" target="_blank" rel="noopener"&gt;Scripts&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203055" target="_blank" rel="noopener"&gt;Passo a Passo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203050"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Objetivo&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;O objetivo deste documento é descrever os passos necessário para fazer um controle granular por canal do YouTube no NGFW da Check Point, sendo possível assim, liberar ou bloquear o acesso de canais específicos do YouTube a partir do seu identificador único.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203051"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Aviso&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;O script utilizado nesta Prova de Conceito foi criado por mim (&lt;A href="https://community.checkpoint.com/t5/user/viewprofilepage/user-id/4755" target="_blank" rel="noopener"&gt;Thiago Mourão&lt;/A&gt;) utilizando a documentação oficial de referência da &lt;EM&gt;API Management API Reference v1.8&lt;/EM&gt; (&lt;A href="https://sc1.checkpoint.com/documents/latest/APIs/index.html#introduction~v1.8%20" target="_blank" rel="noopener"&gt;link&lt;/A&gt;), para mais detalhes e atualizações das API disponíveis pela Check Point, favor acessar a página &lt;EM&gt;Check Point API Reference&lt;/EM&gt; (&lt;A href="https://sc1.checkpoint.com/documents/latest/api_reference/index.html" target="_blank" rel="noopener"&gt;link&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203052"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Limitações e Requisitos&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Para este laboratório, foi utilizado a versão 1.8 da Management API da Check Point, disponível a partir da versão R81.10 do Sistema Operacional Gaia. Para versões anteriores, favor consultar o guia de referência da versão correspondente para garantir suporte aos comandos utilizados.&lt;/LI&gt;
&lt;LI&gt;Para listar os vídeos de um canal do YouTube, foi utilizado ao YouTube Data API v3 (&lt;A href="https://developers.google.com/youtube/v3" target="_blank" rel="noopener"&gt;link&lt;/A&gt;) e para tal será necessário criar sua própria chave desta API.&lt;/LI&gt;
&lt;LI&gt;Para fazer o controle granular de URLs de vídeos do YouTube é necessário habilitar a Inspeção HTTPS (SSL Inspection)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203053"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Topologia&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Neste laboratório, foi utilizado a versão R81.10 do Check Point Gaia configurado como Security Gateway e Manager (StandAlone) ao mesmo tempo e eles foram virtualizados no VMware Workstation 16.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Virtual Environment:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1 x Check Point StandAlone (Gateway/ Manager) R81.10&lt;/LI&gt;
&lt;LI&gt;1 x Microsoft Windows 10&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12663i439ADAFC7E6DEEEC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203054"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Scripts&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;ytcl_watch.sh&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Checa se novos canais do YouTube foram adicionados ao objeto “YouTubeChannels-AllowList” no formato definido como YTCL-ID_do_Canal&lt;/LI&gt;
&lt;LI&gt;Caso um novo canal tenha sido adicionado os scripts “ytcl_diff.sh” e “ytcl_update.sh” deverão ser executados, caso não ocorra erros e os canais adicionados tenham vídeos públicos.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;APIKEY=$(cat apikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MGMTIP="192.168.157.100"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cd $EXECDIR&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_watch.sh at $(date -u) ####"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Login"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli login --management $MGMTIP api-key $APIKEY &amp;gt; sid_a.txt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing YouTubeChannels-AllowList.list file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YouTubeChannels-AllowList.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Getting information from YouTubeChannels-AllowList Object and saving on file YouTubeChannels-AllowList.list"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_a.txt show application-site-group name "YouTubeChannels-AllowList" --format json | jq '.members[] | select( .name | contains("YTCL"))' | jq '.name' | sort &amp;gt; YouTubeChannels-AllowList.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Logout"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_a.txt logout --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YouTubeChannels-AllowList.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Creating new YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;diff &amp;lt;(sort YouTubeChannels-AllowList.list) &amp;lt;(sort YouTubeChannels-AllowList.list1) | grep "&amp;lt;" | sed 's/&amp;lt; //' &amp;gt; YouTubeChannels-AllowList.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Checking YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat YouTubeChannels-AllowList.diff | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Running script $EXECDIR/ytcl_diff.sh to creating .url files"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh $EXECDIR/ytcl_diff.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No changes on YouTubeChannels-AllowList.list file"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Copying file $EXECDIR/YouTubeChannels-AllowList.list to $EXECDIR/YouTubeChannels-AllowList.list1"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cp -f $EXECDIR/YouTubeChannels-AllowList.list $EXECDIR/YouTubeChannels-AllowList.list1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(sh -c 'ls *.url | grep YTCL' | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Running script $EXECDIR/ytcl_update.sh to Updating URLs on Group YouTubeChannels-AllowList"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh $EXECDIR/ytcl_update.sh&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No YTCL.url files were found"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Backup last URL files"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh -c 'ls *.url | grep YTCL' | sed 's/\(YTCL.*\)\.url/\1/' | while read NAME&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mv -f ${NAME}.url ${NAME}.bkp-$(date +%Y%m%d%H%M%S)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_watch.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Checa se o ID do canal existe e se o mesmo possui vídeos públicos&lt;/LI&gt;
&lt;LI&gt;Caso o Canal exista e tenha vídeos públicos, de forma recursiva, utilizando a API YouTube Data API v3, todas as URLs dos vídeos públicos são extraídas e salvas em arquivo.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Google API Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;GAPIKEY=$(cat gapikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;CID=""&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MR=5&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;NTP_S=""&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_diff.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat YouTubeChannels-AllowList.diff | sed 's/"YTCL\-\(.*\)"/\1/' | while read CID&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(curl_cli -s -k "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1&lt;/A&gt;" | jq '.pageInfo.totalResults') -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing file YTCL-$CID.url"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&lt;/A&gt;" &amp;gt; result-${CID}.txt&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;while true&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat result-${CID}.txt | jq '.' | grep "nextPageToken" | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "nextPageToken ($NTP_S) found for channel $CID"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;NTP_S="$(cat result-${CID}.txt | jq '.' | grep nextPageToken | cut -d '"' -f 4)"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Adding URLs to file YTCL-${CID}.urls - nextPageToken will be $NTP_S"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat result-${CID}.txt | jq '.items[].id.videoId' | grep -v null | sed 's/^\"/\"www\.youtube\.com\/watch\?v\=/g' &amp;gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&amp;amp;pageToken=$NTP_S" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&amp;amp;pageToken=$NTP_S&lt;/A&gt;" &amp;gt; result-${CID}.txt&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "nextPageToken not found or last page for channel $CID"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Adding last page of URLs to file YTCL-$CID.urls"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat result-${CID}.txt | jq '.items[].id.videoId' | grep -v null | sed 's/^\"/\"www\.youtube\.com\/watch\?v\=/g' &amp;gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "File $CID.url finished"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;break&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "YouTube Channel $CID - No public videos found or channel ID is wrong"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_diff.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;ytcl_update.sh&lt;/STRONG&gt;&lt;STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Atualiza o objeto correspondente do Canal do YouTube com o título do canal no campo “COMMENTS”, que pode ser utilizado como parâmetro de busca no SmartConsole na árvore de objetos&lt;/LI&gt;
&lt;LI&gt;Verifica quais URLs dos vídeos públicos identificadas no processo anterior ainda não foram cadastradas no objeto correspondendo do canal e adiciona elas.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Check Point Management Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;APIKEY=$(cat apikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MGMTIP="192.168.157.100"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Google API Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;GAPIKEY=$(cat gapikey)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cd $EXECDIR&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_update.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Login"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli login --management $MGMTIP api-key $APIKEY &amp;gt; sid_b.txt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh -c 'ls *.url' |grep YTCL | sed 's/YTCL\-\(.*\)\.url/\1/' | while read NAME&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt show application-site name "YTCL-${NAME}" --format json | jq '."url-list"[]' | sort &amp;gt; YTCL-${NAME}.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Creating new YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;diff YTCL-${NAME}.url YTCL-${NAME}.list | grep "&amp;lt;" | sed 's/&amp;lt; //' &amp;gt; YTCL-${NAME}.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Checking YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat YTCL-${NAME}.diff | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Updating Channel Title on Object comments"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;CTITLE=$(curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=${NAME}&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=${NAME}&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1&lt;/A&gt;" | jq '.items[].snippet.channelTitle')&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name \"YTCL-${NAME}\" comments $CTITLE --format json"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name "YTCL-${NAME}" comments "$CTITLE" --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Reading file YTCL-${NAME}.diff and update object ${NAME}"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat YTCL-${NAME}.diff | while read URL&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name "YTCL-${NAME}" url-list.add $URL --format json | jq -c '.'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No changes on YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Publishing Session"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt publish --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Pushing Policy"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt install-policy policy-package "standard" access true threat-prevention false targets.1 "R81.10-StandAlone" --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Logout"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt logout --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_update.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203055"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Passo a Passo&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Habilitar as Funcionalidades: “&lt;EM&gt;Application Control&lt;/EM&gt;” e “&lt;EM&gt;URL Filtering&lt;/EM&gt;”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12665i0836AA55128F3342/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Habilitar a Funcionalidade de Inspeção SSL “HTTPS Inspection”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12666iD6A0424420199662/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Criar o objeto “YouTube-Domain”
&lt;UL&gt;
&lt;LI&gt;Adicionar o domínio do YouTube: &lt;STRONG&gt;\.youtube\.com&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Marcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 628px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12667i6BF07A12950213F4/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Criar o objeto “Application/Site Group” com o nome “YouTubeChannels-AllowList”
&lt;UL&gt;
&lt;LI&gt;Adicionar o domínio do YouTube: &lt;STRONG&gt;\.youtube\.com&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Marcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12668i9FCE218FBAF9D546/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Adicionar ao grupo “YouTubeChannels-AllowList”
&lt;UL&gt;
&lt;LI&gt;Clicar no botão de +&lt;/LI&gt;
&lt;LI&gt;Clicar no *&lt;/LI&gt;
&lt;LI&gt;Selecionar a opção “&lt;EM&gt;Application/Site...&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12669i14322D2D55D51E12/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Configurar o grupo usando o seguinte padrão
&lt;UL&gt;
&lt;LI&gt;Nomenclatura do Nome: &lt;STRONG&gt;YTCL-{ID do Canal}&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Adicionar as URLs básicas que deseja permitir do canal:
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/channel/UCgEsWb335K-Me6Zwv0n21YQ" target="_blank" rel="noopener"&gt;www.youtube.com/channel/UCgEsWb335K-Me6Zwv0n21YQ&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/user/Dome9Security/featured" target="_blank" rel="noopener"&gt;www.youtube.com/user/Dome9Security/featured&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/user/Dome9Security/videos" target="_blank" rel="noopener"&gt;www.youtube.com/user/Dome9Security/videos&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Desmarcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 528px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12670i5D4D24AE25E381A1/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Configurar regras de acesso para:
&lt;UL&gt;
&lt;LI&gt;Bloqueio do protocolo QUIC&lt;/LI&gt;
&lt;LI&gt;Regra para acesso Web Filtering com Inline Layer (Application Control &amp;amp; URL Filtering)
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Regra de liberação das URLs dos vídeos de cos Canis do YouTube (&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;)&lt;/LI&gt;
&lt;LI&gt;Regra de bloqueio do Domínio do YouTube (&lt;STRONG&gt;YouTube-Domain&lt;/STRONG&gt;)&lt;/LI&gt;
&lt;LI&gt;Liberação da aplicação YouTube&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12671i9138C9F241F654BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 644px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12672iF03375AB7C5D1281/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 626px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12675iBD1077ABE71205DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Copiar os 03 (três) arquivos de scripts para a gerência&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12676i9484573AB49D57E4/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Criar o arquivo &lt;STRONG&gt;apikey&lt;/STRONG&gt; contento a chave da API do usuário da Gerência do Check Point e o arquivo &lt;STRONG&gt;gpaikey&lt;/STRONG&gt; contento a chave da API do Google para fazer consulta via YouTube Data API v3&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12677iA9D4872E0EA4102F/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Executar o script&lt;STRONG&gt; ytcl_watch.sh&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12680i3AD3B73CBA290150/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;OL&gt;
&lt;LI&gt;Checa o conteúdo do objeto chamado “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” e procura por lista de &lt;EM&gt;Application/Site&lt;/EM&gt; que comecem com o prefixo “&lt;STRONG&gt;YTCL-&lt;/STRONG&gt;“ e salva no arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list&lt;/STRONG&gt;”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12681iEC881C5472416004/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12682i22829611B23080D3/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Compara o conteúdo do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list&lt;/STRONG&gt;” com o do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list1&lt;/STRONG&gt;” para saber se algum novo canal foi adicionado e gera o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12683iE5B7ACE45FF6C995/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Caso o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” possua alguma informação ele executa um novo script chamado “&lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;” para criar os arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; com as URLs de todos os vídeos públicos de cada novo canal que foi adicionado ao objeto “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12684iD0C2E2BD0818D5B8/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_diff.sh para criar os arquivos {Channel_ID}.url, caso o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” possua alguma informação&lt;/LI&gt;
&lt;LI&gt;O conteúdo do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” é movido para o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList1&lt;/STRONG&gt;” para servir como base de comparação para a próxima execução do script.&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_update.sh caso existam arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; no diretório para atualizar os objetos referentes ao Canais do YouTube com a lista de URLs que ainda não estejam cadastradas, além de atualizar o campo COMMENTS com o título do canal.&lt;/LI&gt;
&lt;LI&gt;O script move os arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; gerados no passo anterior para o formato &lt;STRONG&gt;YTCL-{Channel_ID}.bkp-$(date +%Y%m%d%H%M%S)&lt;/STRONG&gt; para servir de histórico de quais URLs foram adicionadas naquele momento&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Execução automática do script &lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12685i9252E99D01E66F64/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;OL&gt;
&lt;LI&gt;Para cada linha do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” são executadas as seguintes ações:&lt;/LI&gt;
&lt;LI&gt;Parsing para encontrar o ID do Canal do YouTube, conforme nomenclatura definida na criação dos objetos do tipo “&lt;EM&gt;Application/Site&lt;/EM&gt;”, seguindo a regra &lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Apagar, caso exista, o conteúdo do arquivo YTCL-{Channel_ID}.url&lt;/LI&gt;
&lt;LI&gt;Checar se o ID do Canal é válido e se o Canal tem vídeo publico&lt;/LI&gt;
&lt;LI&gt;Listar de forma recursiva todas as URLs dos vídeos públicos do canal e salvar no arquivo &lt;STRONG&gt;{Channel_ID}.url&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12686i9F6AB4111B040D6B/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12687i5DCDED7B4FB96F3F/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_diff.sh&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12688i6301F935656479B2/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12689i7D08B99DB153A742/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12690i8D6D5BA85299D7AC/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;
&lt;OL&gt;
&lt;LI&gt;Extrai o ID do canal do YouTube que foi adicionado ao objeto “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;”, conforme nomenclatura especificada YTCL-{Channel_ID}&lt;/LI&gt;
&lt;LI&gt;Consulta o objeto do tipo “&lt;EM&gt;Application/Site&lt;/EM&gt;” adicionado ao grupo “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” e salva a lista atual de URL de cada objeto um arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.list&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12691i88609B9AD2D8A375/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Verifica a diferença entre os arquivos “&lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt;”, gerado pelo script ytcl_diff.sh e o arquivo recém criado “&lt;STRONG&gt;YTCL-{Channel_ID}.list&lt;/STRONG&gt;” e salva as URLs adicionais do arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt;” em outro arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.diff&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12692i88FFC32DD0AA109A/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Atualiza o campo “Comments” do objeto “&lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;” com o Título do Canal do YouTube correspondente&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12693i11514D60E39ACE2C/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12694i7BDEE7BE69B4B6EF/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Atualiza a lista de URLs do objeto “&lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;” com as URLs adicionais salvas no arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.diff&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12695i6886F2E60B3121BD/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Publica a sessão&lt;/LI&gt;
&lt;LI&gt;Instala a Política&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Lista de arquivos no diretório, depois da execução&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12696iC020E6139EDEF65A/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI style="list-style-type: none;"&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 15 Jul 2021 14:41:36 GMT</pubDate>
    <dc:creator>Thiago_Mourao</dc:creator>
    <dc:date>2021-07-15T14:41:36Z</dc:date>
    <item>
      <title>Como permitir canais específicos do YouTube</title>
      <link>https://community.checkpoint.com/t5/Portugu%C3%AAs/Como-permitir-canais-espec%C3%ADficos-do-YouTube/m-p/124092#M41</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="6" color="#FF00FF"&gt;&lt;A target="_blank" name="_Toc77203145"&gt;&lt;/A&gt;&lt;FONT color="#000000"&gt;Como permitir canais específicos do YouTube&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Security Engineering Brazil&lt;/P&gt;
&lt;P&gt;Julho, 2021&lt;/P&gt;
&lt;P&gt;Versão 02&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Autor:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Thiago Mourao, SE&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Revisão:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Contents&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203049" target="_blank" rel="noopener"&gt;Como permitir canais específicos do YouTube&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203050" target="_blank" rel="noopener"&gt;Objetivo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203051" target="_blank" rel="noopener"&gt;Aviso&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203052" target="_blank" rel="noopener"&gt;Limitações e Requisitos&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203053" target="_blank" rel="noopener"&gt;Topologia&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203054" target="_blank" rel="noopener"&gt;Scripts&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="#_Toc77203055" target="_blank" rel="noopener"&gt;Passo a Passo&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203050"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Objetivo&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;O objetivo deste documento é descrever os passos necessário para fazer um controle granular por canal do YouTube no NGFW da Check Point, sendo possível assim, liberar ou bloquear o acesso de canais específicos do YouTube a partir do seu identificador único.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203051"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Aviso&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;O script utilizado nesta Prova de Conceito foi criado por mim (&lt;A href="https://community.checkpoint.com/t5/user/viewprofilepage/user-id/4755" target="_blank" rel="noopener"&gt;Thiago Mourão&lt;/A&gt;) utilizando a documentação oficial de referência da &lt;EM&gt;API Management API Reference v1.8&lt;/EM&gt; (&lt;A href="https://sc1.checkpoint.com/documents/latest/APIs/index.html#introduction~v1.8%20" target="_blank" rel="noopener"&gt;link&lt;/A&gt;), para mais detalhes e atualizações das API disponíveis pela Check Point, favor acessar a página &lt;EM&gt;Check Point API Reference&lt;/EM&gt; (&lt;A href="https://sc1.checkpoint.com/documents/latest/api_reference/index.html" target="_blank" rel="noopener"&gt;link&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203052"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Limitações e Requisitos&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Para este laboratório, foi utilizado a versão 1.8 da Management API da Check Point, disponível a partir da versão R81.10 do Sistema Operacional Gaia. Para versões anteriores, favor consultar o guia de referência da versão correspondente para garantir suporte aos comandos utilizados.&lt;/LI&gt;
&lt;LI&gt;Para listar os vídeos de um canal do YouTube, foi utilizado ao YouTube Data API v3 (&lt;A href="https://developers.google.com/youtube/v3" target="_blank" rel="noopener"&gt;link&lt;/A&gt;) e para tal será necessário criar sua própria chave desta API.&lt;/LI&gt;
&lt;LI&gt;Para fazer o controle granular de URLs de vídeos do YouTube é necessário habilitar a Inspeção HTTPS (SSL Inspection)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203053"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Topologia&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Neste laboratório, foi utilizado a versão R81.10 do Check Point Gaia configurado como Security Gateway e Manager (StandAlone) ao mesmo tempo e eles foram virtualizados no VMware Workstation 16.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Virtual Environment:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;1 x Check Point StandAlone (Gateway/ Manager) R81.10&lt;/LI&gt;
&lt;LI&gt;1 x Microsoft Windows 10&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12663i439ADAFC7E6DEEEC/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203054"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Scripts&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;ytcl_watch.sh&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Checa se novos canais do YouTube foram adicionados ao objeto “YouTubeChannels-AllowList” no formato definido como YTCL-ID_do_Canal&lt;/LI&gt;
&lt;LI&gt;Caso um novo canal tenha sido adicionado os scripts “ytcl_diff.sh” e “ytcl_update.sh” deverão ser executados, caso não ocorra erros e os canais adicionados tenham vídeos públicos.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;APIKEY=$(cat apikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MGMTIP="192.168.157.100"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cd $EXECDIR&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_watch.sh at $(date -u) ####"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Login"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli login --management $MGMTIP api-key $APIKEY &amp;gt; sid_a.txt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing YouTubeChannels-AllowList.list file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YouTubeChannels-AllowList.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Getting information from YouTubeChannels-AllowList Object and saving on file YouTubeChannels-AllowList.list"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_a.txt show application-site-group name "YouTubeChannels-AllowList" --format json | jq '.members[] | select( .name | contains("YTCL"))' | jq '.name' | sort &amp;gt; YouTubeChannels-AllowList.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Logout"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_a.txt logout --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YouTubeChannels-AllowList.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Creating new YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;diff &amp;lt;(sort YouTubeChannels-AllowList.list) &amp;lt;(sort YouTubeChannels-AllowList.list1) | grep "&amp;lt;" | sed 's/&amp;lt; //' &amp;gt; YouTubeChannels-AllowList.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Checking YouTubeChannels-AllowList.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat YouTubeChannels-AllowList.diff | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Running script $EXECDIR/ytcl_diff.sh to creating .url files"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh $EXECDIR/ytcl_diff.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No changes on YouTubeChannels-AllowList.list file"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Copying file $EXECDIR/YouTubeChannels-AllowList.list to $EXECDIR/YouTubeChannels-AllowList.list1"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cp -f $EXECDIR/YouTubeChannels-AllowList.list $EXECDIR/YouTubeChannels-AllowList.list1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(sh -c 'ls *.url | grep YTCL' | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Running script $EXECDIR/ytcl_update.sh to Updating URLs on Group YouTubeChannels-AllowList"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh $EXECDIR/ytcl_update.sh&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No YTCL.url files were found"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Backup last URL files"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh -c 'ls *.url | grep YTCL' | sed 's/\(YTCL.*\)\.url/\1/' | while read NAME&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mv -f ${NAME}.url ${NAME}.bkp-$(date +%Y%m%d%H%M%S)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_watch.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Checa se o ID do canal existe e se o mesmo possui vídeos públicos&lt;/LI&gt;
&lt;LI&gt;Caso o Canal exista e tenha vídeos públicos, de forma recursiva, utilizando a API YouTube Data API v3, todas as URLs dos vídeos públicos são extraídas e salvas em arquivo.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Google API Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;GAPIKEY=$(cat gapikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;CID=""&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MR=5&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;NTP_S=""&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_diff.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat YouTubeChannels-AllowList.diff | sed 's/"YTCL\-\(.*\)"/\1/' | while read CID&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(curl_cli -s -k "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1&lt;/A&gt;" | jq '.pageInfo.totalResults') -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Erasing file YTCL-$CID.url"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&lt;/A&gt;" &amp;gt; result-${CID}.txt&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;while true&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat result-${CID}.txt | jq '.' | grep "nextPageToken" | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "nextPageToken ($NTP_S) found for channel $CID"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;NTP_S="$(cat result-${CID}.txt | jq '.' | grep nextPageToken | cut -d '"' -f 4)"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Adding URLs to file YTCL-${CID}.urls - nextPageToken will be $NTP_S"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat result-${CID}.txt | jq '.items[].id.videoId' | grep -v null | sed 's/^\"/\"www\.youtube\.com\/watch\?v\=/g' &amp;gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&amp;amp;pageToken=$NTP_S" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=$CID&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=$MR&amp;amp;pageToken=$NTP_S&lt;/A&gt;" &amp;gt; result-${CID}.txt&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "nextPageToken not found or last page for channel $CID"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Adding last page of URLs to file YTCL-$CID.urls"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat result-${CID}.txt | jq '.items[].id.videoId' | grep -v null | sed 's/^\"/\"www\.youtube\.com\/watch\?v\=/g' &amp;gt;&amp;gt; YTCL-${CID}.url&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "File $CID.url finished"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;break&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "YouTube Channel $CID - No public videos found or channel ID is wrong"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_diff.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; background-color: #ffffff;"&gt;&lt;BR /&gt;ytcl_update.sh&lt;/STRONG&gt;&lt;STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Este script executa as seguintes etapas:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Atualiza o objeto correspondente do Canal do YouTube com o título do canal no campo “COMMENTS”, que pode ser utilizado como parâmetro de busca no SmartConsole na árvore de objetos&lt;/LI&gt;
&lt;LI&gt;Verifica quais URLs dos vídeos públicos identificadas no processo anterior ainda não foram cadastradas no objeto correspondendo do canal e adiciona elas.&lt;/LI&gt;
&lt;/UL&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%"&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#!/bin/bash -f&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;source /var/opt/CPshrd-R81.10/tmp/.CPprofile.sh&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Script Directory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;EXECDIR="/home/admin/ytcl"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Check Point Management Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;APIKEY=$(cat apikey)&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;MGMTIP="192.168.157.100"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;#Google API Variables&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;GAPIKEY=$(cat gapikey)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cd $EXECDIR&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### Executing ytcl_update.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Login"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli login --management $MGMTIP api-key $APIKEY &amp;gt; sid_b.txt&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;sh -c 'ls *.url' |grep YTCL | sed 's/YTCL\-\(.*\)\.url/\1/' | while read NAME&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt show application-site name "YTCL-${NAME}" --format json | jq '."url-list"[]' | sort &amp;gt; YTCL-${NAME}.list&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Creating new YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;diff YTCL-${NAME}.url YTCL-${NAME}.list | grep "&amp;lt;" | sed 's/&amp;lt; //' &amp;gt; YTCL-${NAME}.diff&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Checking YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;if [[ $(cat YTCL-${NAME}.diff | wc -l) -gt 0 ]]&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;then&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Updating Channel Title on Object comments"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;CTITLE=$(curl_cli -k -s "&lt;A href="https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=${NAME}&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1" target="_blank" rel="noopener"&gt;https://www.googleapis.com/youtube/v3/search?key=$GAPIKEY&amp;amp;channelId=${NAME}&amp;amp;part=snippet,id&amp;amp;order=date&amp;amp;maxResults=1&lt;/A&gt;" | jq '.items[].snippet.channelTitle')&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name \"YTCL-${NAME}\" comments $CTITLE --format json"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name "YTCL-${NAME}" comments "$CTITLE" --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "Reading file YTCL-${NAME}.diff and update object ${NAME}"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;cat YTCL-${NAME}.diff | while read URL&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;do&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt set application-site name "YTCL-${NAME}" url-list.add $URL --format json | jq -c '.'&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;else&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "No changes on YTCL-${NAME}.diff file"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;fi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;done&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Publishing Session"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt publish --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Pushing Policy"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt install-policy policy-package "standard" access true threat-prevention false targets.1 "R81.10-StandAlone" --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "MGMT - Logout"&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;mgmt_cli --management $MGMTIP -s sid_b.txt logout --format json | jq -c '.'&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier" size="1 2 3 4 5 6 7"&gt;echo "#### End of Execution of ytcl_update.sh at $(date -u) ####"&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A target="_blank" name="_Toc77203055"&gt;&lt;/A&gt;&lt;FONT size="5"&gt;Passo a Passo&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Habilitar as Funcionalidades: “&lt;EM&gt;Application Control&lt;/EM&gt;” e “&lt;EM&gt;URL Filtering&lt;/EM&gt;”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12665i0836AA55128F3342/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Habilitar a Funcionalidade de Inspeção SSL “HTTPS Inspection”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12666iD6A0424420199662/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Criar o objeto “YouTube-Domain”
&lt;UL&gt;
&lt;LI&gt;Adicionar o domínio do YouTube: &lt;STRONG&gt;\.youtube\.com&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Marcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 628px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12667i6BF07A12950213F4/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Criar o objeto “Application/Site Group” com o nome “YouTubeChannels-AllowList”
&lt;UL&gt;
&lt;LI&gt;Adicionar o domínio do YouTube: &lt;STRONG&gt;\.youtube\.com&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Marcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12668i9FCE218FBAF9D546/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Adicionar ao grupo “YouTubeChannels-AllowList”
&lt;UL&gt;
&lt;LI&gt;Clicar no botão de +&lt;/LI&gt;
&lt;LI&gt;Clicar no *&lt;/LI&gt;
&lt;LI&gt;Selecionar a opção “&lt;EM&gt;Application/Site...&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12669i14322D2D55D51E12/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Configurar o grupo usando o seguinte padrão
&lt;UL&gt;
&lt;LI&gt;Nomenclatura do Nome: &lt;STRONG&gt;YTCL-{ID do Canal}&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Adicionar as URLs básicas que deseja permitir do canal:
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/channel/UCgEsWb335K-Me6Zwv0n21YQ" target="_blank" rel="noopener"&gt;www.youtube.com/channel/UCgEsWb335K-Me6Zwv0n21YQ&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/user/Dome9Security/featured" target="_blank" rel="noopener"&gt;www.youtube.com/user/Dome9Security/featured&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;EM&gt;&lt;A href="http://www.youtube.com/user/Dome9Security/videos" target="_blank" rel="noopener"&gt;www.youtube.com/user/Dome9Security/videos&lt;/A&gt;&lt;/EM&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Desmarcar a opção “&lt;EM&gt;URLs are defined as Regular Expression&lt;/EM&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 528px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12670i5D4D24AE25E381A1/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Configurar regras de acesso para:
&lt;UL&gt;
&lt;LI&gt;Bloqueio do protocolo QUIC&lt;/LI&gt;
&lt;LI&gt;Regra para acesso Web Filtering com Inline Layer (Application Control &amp;amp; URL Filtering)
&lt;UL class="lia-list-style-type-circle"&gt;
&lt;LI&gt;Regra de liberação das URLs dos vídeos de cos Canis do YouTube (&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;)&lt;/LI&gt;
&lt;LI&gt;Regra de bloqueio do Domínio do YouTube (&lt;STRONG&gt;YouTube-Domain&lt;/STRONG&gt;)&lt;/LI&gt;
&lt;LI&gt;Liberação da aplicação YouTube&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12671i9138C9F241F654BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 644px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12672iF03375AB7C5D1281/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 626px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12675iBD1077ABE71205DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Copiar os 03 (três) arquivos de scripts para a gerência&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12676i9484573AB49D57E4/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Criar o arquivo &lt;STRONG&gt;apikey&lt;/STRONG&gt; contento a chave da API do usuário da Gerência do Check Point e o arquivo &lt;STRONG&gt;gpaikey&lt;/STRONG&gt; contento a chave da API do Google para fazer consulta via YouTube Data API v3&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12677iA9D4872E0EA4102F/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Executar o script&lt;STRONG&gt; ytcl_watch.sh&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12680i3AD3B73CBA290150/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;OL&gt;
&lt;LI&gt;Checa o conteúdo do objeto chamado “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” e procura por lista de &lt;EM&gt;Application/Site&lt;/EM&gt; que comecem com o prefixo “&lt;STRONG&gt;YTCL-&lt;/STRONG&gt;“ e salva no arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list&lt;/STRONG&gt;”.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12681iEC881C5472416004/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12682i22829611B23080D3/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Compara o conteúdo do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list&lt;/STRONG&gt;” com o do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.list1&lt;/STRONG&gt;” para saber se algum novo canal foi adicionado e gera o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 624px;"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12683iE5B7ACE45FF6C995/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Caso o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” possua alguma informação ele executa um novo script chamado “&lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;” para criar os arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; com as URLs de todos os vídeos públicos de cada novo canal que foi adicionado ao objeto “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12684iD0C2E2BD0818D5B8/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_diff.sh para criar os arquivos {Channel_ID}.url, caso o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” possua alguma informação&lt;/LI&gt;
&lt;LI&gt;O conteúdo do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” é movido para o arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList1&lt;/STRONG&gt;” para servir como base de comparação para a próxima execução do script.&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_update.sh caso existam arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; no diretório para atualizar os objetos referentes ao Canais do YouTube com a lista de URLs que ainda não estejam cadastradas, além de atualizar o campo COMMENTS com o título do canal.&lt;/LI&gt;
&lt;LI&gt;O script move os arquivos &lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt; gerados no passo anterior para o formato &lt;STRONG&gt;YTCL-{Channel_ID}.bkp-$(date +%Y%m%d%H%M%S)&lt;/STRONG&gt; para servir de histórico de quais URLs foram adicionadas naquele momento&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Execução automática do script &lt;STRONG&gt;ytcl_diff.sh&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12685i9252E99D01E66F64/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;OL&gt;
&lt;LI&gt;Para cada linha do arquivo “&lt;STRONG&gt;YouTubeChannels-AllowList.diff&lt;/STRONG&gt;” são executadas as seguintes ações:&lt;/LI&gt;
&lt;LI&gt;Parsing para encontrar o ID do Canal do YouTube, conforme nomenclatura definida na criação dos objetos do tipo “&lt;EM&gt;Application/Site&lt;/EM&gt;”, seguindo a regra &lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;Apagar, caso exista, o conteúdo do arquivo YTCL-{Channel_ID}.url&lt;/LI&gt;
&lt;LI&gt;Checar se o ID do Canal é válido e se o Canal tem vídeo publico&lt;/LI&gt;
&lt;LI&gt;Listar de forma recursiva todas as URLs dos vídeos públicos do canal e salvar no arquivo &lt;STRONG&gt;{Channel_ID}.url&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12686i9F6AB4111B040D6B/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12687i5DCDED7B4FB96F3F/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Execução automática do script ytcl_diff.sh&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12688i6301F935656479B2/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12689i7D08B99DB153A742/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12690i8D6D5BA85299D7AC/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;
&lt;OL&gt;
&lt;LI&gt;Extrai o ID do canal do YouTube que foi adicionado ao objeto “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;”, conforme nomenclatura especificada YTCL-{Channel_ID}&lt;/LI&gt;
&lt;LI&gt;Consulta o objeto do tipo “&lt;EM&gt;Application/Site&lt;/EM&gt;” adicionado ao grupo “&lt;STRONG&gt;YouTubeChannels-AllowList&lt;/STRONG&gt;” e salva a lista atual de URL de cada objeto um arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.list&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12691i88609B9AD2D8A375/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Verifica a diferença entre os arquivos “&lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt;”, gerado pelo script ytcl_diff.sh e o arquivo recém criado “&lt;STRONG&gt;YTCL-{Channel_ID}.list&lt;/STRONG&gt;” e salva as URLs adicionais do arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.url&lt;/STRONG&gt;” em outro arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.diff&lt;/STRONG&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12692i88FFC32DD0AA109A/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Atualiza o campo “Comments” do objeto “&lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;” com o Título do Canal do YouTube correspondente&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12693i11514D60E39ACE2C/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12694i7BDEE7BE69B4B6EF/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Atualiza a lista de URLs do objeto “&lt;STRONG&gt;YTCL-{Channel_ID}&lt;/STRONG&gt;” com as URLs adicionais salvas no arquivo “&lt;STRONG&gt;YTCL-{Channel_ID}.diff&lt;/STRONG&gt;”&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12695i6886F2E60B3121BD/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;LI&gt;Publica a sessão&lt;/LI&gt;
&lt;LI&gt;Instala a Política&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;LI&gt;Lista de arquivos no diretório, depois da execução&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png"&gt;&lt;img src="https://community.checkpoint.com/t5/image/serverpage/image-id/12696iC020E6139EDEF65A/image-size/large?v=v2&amp;amp;px=999" alt="image.png" title="image.png" /&gt;&lt;/span&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI style="list-style-type: none;"&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jul 2021 14:41:36 GMT</pubDate>
      <guid>https://community.checkpoint.com/t5/Portugu%C3%AAs/Como-permitir-canais-espec%C3%ADficos-do-YouTube/m-p/124092#M41</guid>
      <dc:creator>Thiago_Mourao</dc:creator>
      <dc:date>2021-07-15T14:41:36Z</dc:date>
    </item>
  </channel>
</rss>

