;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Recurso de vídeos curtos do YouTube chega ao Brasil para brigar com TikTok

YouTube Shorts chega ao Brasil - Divulgação
YouTube Shorts chega ao Brasil Imagem: Divulgação

Letícia Naísa

De Tilt, em São Paulo

07/06/2021 06h00

Vídeos curtos já se tornaram parte da vida online com uma chuva desafios de dancinhas, tutoriais e piadas. Com o crescimento do TikTok e do Reels, do Instagram, o Google não poderia deixar de surfar nessa onda, especialmente no Brasil. A empresa lança hoje o YouTube Shorts, que tem a essência parecida com a dos concorrentes.

A ferramenta começa a ficar disponível para os brasileiros dentro do próprio aplicativo do YouTube a partir desta segunda-feira (7).

Como vai funcionar

A função permite a criação de vídeos de até 60 segundos com filtros, mensagens escritas na tela e edições mais elaboradas, além da inclusão de músicas e áudios de outros vídeos presentes na plataforma.

O YouTube Shorts foi lançado em versão beta na Índia e nos Estados Unidos em setembro de 2020 e em março deste ano, respectivamente.

Alguns brasileiros puderam ter o a conteúdos produzidos por youtubers de fora no aplicativo. Agora, qualquer um com conta na plataforma poderá produzir conteúdo no formato de vídeos curtos.

Um dos principais objetivos da criação do Shorts, segundo Todd Shermann, gerente de produto da ferramenta, é facilitar a vida de quem não consegue fazer vídeos mais elaborados para o YouTube.

YouTube Shorts chega ao Brasil - Divulgação - Divulgação
YouTube Shorts chega ao Brasil
Imagem: Divulgação

YouTube Shorts chega ao Brasil - Divulgação - Divulgação
YouTube Shorts chega ao Brasil
Imagem: Divulgação

Terá monetização?

As pessoas familiarizadas com o YouTube sabem bem que a monetização é um grande atrativo para produtores de conteúdo — ainda que a forma de distribuição de dinheiro vire alvo de polêmicas de tempos em tempos. Para os youtubers terem mais chance de ganhar grana por seus vídeos, é comum que eles façam materiais mais longos para ampliar as opções de inserção de anúncios.

Com o Shorts, essa será uma questão para ficarmos de olho. Por enquanto, não terão propaganda, como os vídeos tradicionais. "Ainda estamos estudando o modelo de negócio mais aplicável", afirma Shermann.

Uma das opções estudadas é que as publicidades sejam colocadas no início dos vídeos curtos.

Diferente da concorrência?

YouTube Shorts chega ao Brasil - Divulgação - Divulgação
YouTube Shorts chega ao Brasil
Imagem: Divulgação

Segundo o Google, o grande diferencial do Shorts frente ao TikTok e ao Reels, do Instagram, é o acervo. Os youtubers poderão disponibilizar o áudio de seus vídeos para que outros criadores de conteúdo possam usar no formato Shorts. Com isso, os usuários do Shorts terão milhões de opções de áudio para produção de vídeos curtos.

Outro diferencial, diz a empresa, é que a plataforma está conectada com o YouTube Music. O Google fez acordos com gravadoras e produtoras para ceder sons e faixas que possam ser usados no formato Shorts sem ferir direitos autorais.

Uma das expectativas para o lançamento é que os atuais produtores de conteúdo do YouTube usem o formato curto para chamar a audiência a assistir os vídeos em formato longo na plataforma.