💡 Dica de Estudo: Conforme o vídeo avança, clique em Marcar Minuto para vincular suas anotações aos segundos das explicações. Se os vídeos forem gravados no formato vertical (Shorts), ative o botão Modo Shorts.
Inserir:
let player;
const playlistId = 'PLCjkd87G9IwJwI9RaMI1wQN9HjUXDRVa3';
const firstVideoId = 'oRPnwMR-ql0';
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
playerVars: {
listType: 'playlist',
list: playlistId,
autoplay: 0,
rel: 0,
modestbranding: 1
},
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
// Se necessário, pode forçar a seleção do vídeo inicial
// event.target.cuePlaylist({ list: playlistId, index: 0 });
}
function prevVideo() {
if (player && player.previousVideo) {
player.previousVideo();
}
}
function nextVideo() {
if (player && player.nextVideo) {
player.nextVideo();
}
}
// Alternar proporção 16:9 vs Vertical (Shorts)
let isShorts = false;
function toggleAspect() {
const container = document.getElementById('videoContainer');
const btn = document.getElementById('aspectBtn');
isShorts = !isShorts;
if (isShorts) {
container.classList.remove('ratio-16-9');
container.classList.add('ratio-shorts');
btn.textContent = '🖥 Modo Horizontal (16:9)';
} else {
container.classList.remove('ratio-shorts');
container.classList.add('ratio-16-9');
btn.textContent = '📱 Modo Shorts / Vertical';
}
}
// Inserir carimbo de data/hora atual da aula
function insertCurrentTimestamp() {
if (!player || typeof player.getCurrentTime !== 'function') return;
const totalSeconds = Math.floor(player.getCurrentTime());
const mins = String(Math.floor(totalSeconds / 60)).padStart(2, '0');
const secs = String(totalSeconds % 60).padStart(2, '0');
insertText(`\n⏱ [${mins}:${secs}] `);
}
// Inserção no cursor do textarea
const textarea = document.getElementById('notes');
function insertText(text) {
const start = textarea.selectionStart;
const end = textarea.selectionEnd;
const val = textarea.value;
textarea.value = val.substring(0, start) + text + val.substring(end);
textarea.focus();
textarea.selectionStart = textarea.selectionEnd = start + text.length;
saveNotes();
}
// Persistência local no navegador
const storageKey = 'japanese_playlist_study_notes';
const statusEl = document.getElementById('saveStatus');
function loadNotes() {
const saved = localStorage.getItem(storageKey);
if (saved) {
textarea.value = saved;
statusEl.textContent = 'Anotações carregadas.';
} else {
textarea.value = `# Anotações de Japonês - Playlist\n- Aula: Lição 1 Gojūon Challenge\n\n`;
statusEl.textContent = 'Pronto para escrever.';
}
}
function saveNotes() {
localStorage.setItem(storageKey, textarea.value);
statusEl.textContent = 'Salvo automaticamente.';
}
textarea.addEventListener('input', () => {
statusEl.textContent = 'Digitando...';
clearTimeout(window.saveTimer);
window.saveTimer = setTimeout(saveNotes, 600);
});
function clearNotes() {
if (confirm('Deseja realmente limpar todas as anotações?')) {
textarea.value = '';
saveNotes();
}
}
// Download das notas
function downloadNotes(format) {
const content = textarea.value;
const blob = new Blob([content], { type: 'text/plain;charset=utf-8' });
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = `estudo_japones_${new Date().toISOString().slice(0, 10)}.${format}`;
link.click();
URL.revokeObjectURL(link.href);
}
window.addEventListener('DOMContentLoaded', loadNotes);