SYMBOL INDEX (131 symbols across 11 files) FILE: main.js constant USER_DATA_PATH (line 20) | const USER_DATA_PATH = app.getPath("userData"); constant CONFIG_FILE_PATH (line 21) | const CONFIG_FILE_PATH = path.join(USER_DATA_PATH, "ytdownloader.json"); function initialize (line 84) | async function initialize() { function createWindow (line 98) | function createWindow() { function createSecondaryWindow (line 153) | function createSecondaryWindow(file) { function createTray (line 186) | function createTray() { function registerIpcHandlers (line 254) | function registerIpcHandlers() { function registerAutoUpdaterEvents (line 443) | function registerAutoUpdaterEvents() { function i18n (line 494) | function i18n(phrase) { function loadConfiguration (line 501) | async function loadConfiguration() { function saveConfiguration (line 517) | async function saveConfiguration() { function loadTranslations (line 525) | async function loadTranslations() { FILE: src/common.js function getId (line 7) | function getId(id) { function advancedToggle (line 77) | function advancedToggle() { function scrollFunction (line 93) | function scrollFunction() { function toggleErrorDetails (line 111) | function toggleErrorDetails() { FILE: src/compressor.js function getId (line 105) | function getId(id) { function updateSelectedFiles (line 142) | function updateSelectedFiles() { function startCompression (line 153) | async function startCompression() { function cancelCompression (line 193) | function cancelCompression() { function generateOutputPath (line 205) | function generateOutputPath(file, settings) { function compressVideo (line 231) | async function compressVideo(file, settings, itemId, outputPath) { function buildFFmpegCommand (line 299) | function buildFFmpegCommand(file, settings, outputPath) { function getEncoderSettings (line 461) | function getEncoderSettings() { function getNvencPreset (line 482) | function getNvencPreset(speed) { function updateProgress (line 492) | function updateProgress(status, data, itemId) { function createProgressItem (line 513) | function createProgressItem(filename, status, data, itemId) { function formatBytes (line 529) | function formatBytes(bytes) { function timeToSeconds (line 543) | function timeToSeconds(timeStr) { function getFfmpegPath (line 552) | function getFfmpegPath() { function closeMenu (line 609) | function closeMenu() { FILE: src/history.js class DownloadHistory (line 10) | class DownloadHistory { method constructor (line 11) | constructor() { method _generateUniqueId (line 22) | _generateUniqueId() { method _loadHistory (line 26) | async _loadHistory() { method _saveHistory (line 41) | async _saveHistory() { method addDownload (line 52) | async addDownload(downloadInfo) { method getHistory (line 81) | async getHistory() { method getFilteredHistory (line 86) | async getFilteredHistory(options = {}) { method getHistoryItem (line 114) | async getHistoryItem(id) { method removeHistoryItem (line 119) | async removeHistoryItem(id) { method clearHistory (line 131) | async clearHistory() { method getStats (line 138) | async getStats() { method exportAsJSON (line 164) | async exportAsJSON() { method _sanitizeCSVField (line 169) | _sanitizeCSVField(value) { method exportAsCSV (line 186) | async exportAsCSV() { FILE: src/index.js function getId (line 6) | function getId(id) { function selectVideo (line 21) | function selectVideo(){ function selectAudio (line 30) | function selectAudio(){ FILE: src/playlist.js method init (line 88) | init() { method loadInitialConfig (line 106) | loadInitialConfig() { method initEventListeners (line 142) | initEventListeners() { method startDownload (line 216) | startDownload(type) { method buildBaseArgs (line 259) | buildBaseArgs() { method getVideoArgs (line 290) | getVideoArgs() { method getAudioArgs (line 345) | getAudioArgs() { method getThumbnailArgs (line 376) | getThumbnailArgs() { method getLinkArgs (line 385) | getLinkArgs() { method handleDownloadEvents (line 400) | handleDownloadEvents(process, type) { method pasteLink (line 466) | pasteLink() { method updatePlaylistUI (line 474) | updatePlaylistUI(count, type) { method updateDynamicConfig (line 510) | updateDynamicConfig() { method hideOptions (line 541) | hideOptions(justHide = false) { method finishDownload (line 558) | finishDownload(count) { method showError (line 573) | showError(error) { method openDownloadsFolder (line 590) | openDownloadsFolder() { method toggleDownloadType (line 606) | toggleDownloadType(type) { method updateVideoTypeVisibility (line 618) | updateVideoTypeVisibility() { method toggleAdvancedMenu (line 624) | toggleAdvancedMenu() { method closeMenu (line 631) | closeMenu() { method navigate (line 639) | navigate(type, page) { method getFfmpegPath (line 645) | getFfmpegPath() { method getJsRuntimePath (line 669) | getJsRuntimePath() { FILE: src/playlist_new.js function getId (line 51) | function getId(id) { function pasteLink (line 55) | function pasteLink() { function formatTime (line 139) | function formatTime(seconds) { function closeMenu (line 158) | function closeMenu() { FILE: src/preferences.js function getId (line 45) | function getId(id) { function changeLanguage (line 127) | function changeLanguage() { function reload (line 214) | function reload() { function showPopup (line 314) | function showPopup(text, isError = false) { FILE: src/renderer.js constant CONSTANTS (line 9) | const CONSTANTS = { class YtDownloaderApp (line 91) | class YtDownloaderApp { method constructor (line 92) | constructor() { method initialize (line 136) | async initialize() { method _setupDirectories (line 168) | _setupDirectories() { method _configureTray (line 225) | _configureTray() { method _configureAutoUpdate (line 238) | _configureAutoUpdate() { method _initializeTranslations (line 258) | async _initializeTranslations() { method _findOrDownloadYtDlp (line 275) | async _findOrDownloadYtDlp() { method _runBackgroundUpdate (line 353) | _runBackgroundUpdate(executablePath, isMacOS) { method ensureYtDlpBinary (line 406) | async ensureYtDlpBinary(defaultYtDlpPath) { method _findFfmpeg (line 470) | async _findFfmpeg() { method _getJsRuntimePath (line 500) | async _getJsRuntimePath() { method _loadSettings (line 552) | _loadSettings() { method _addEventListeners (line 605) | _addEventListeners() { method pasteAndGetInfo (line 746) | pasteAndGetInfo() { method getInfo (line 754) | async getInfo(url) { method handleDownloadRequest (line 796) | handleDownloadRequest(type) { method _fetchVideoMetadata (line 831) | _fetchVideoMetadata(url) { method _startDownload (line 895) | _startDownload(job) { method _queueDownload (line 951) | _queueDownload(job) { method _processQueue (line 978) | _processQueue() { method _prepareDownloadArgs (line 995) | _prepareDownloadArgs(job) { method _handleDownloadCompletion (line 1123) | _handleDownloadCompletion(code, randomId, filename, ext, thumbnail) { method _handleDownloadError (line 1149) | _handleDownloadError(error, randomId) { method _updateDownloadOptionsFromUI (line 1177) | _updateDownloadOptionsFromUI() { method _resetUIForNewLink (line 1210) | _resetUIForNewLink() { method _populateFormatSelectors (line 1228) | _populateFormatSelectors(formats) { method _displayInfoPanel (line 1396) | _displayInfoPanel() { method _createDownloadUI (line 1428) | _createDownloadUI(randomId, job) { method _updateProgressUI (line 1461) | _updateProgressUI(randomId, progress) { method _showDownloadSuccessUI (line 1501) | _showDownloadSuccessUI(randomId, filename, ext, thumbnail) { method _showError (line 1552) | _showError(errorMessage, url) { method _hideInfoPanel (line 1564) | _hideInfoPanel() { method _showPopup (line 1579) | _showPopup(text, isError = false) { method _closeMenu (line 1615) | _closeMenu() { method _cancelDownload (line 1628) | _cancelDownload(id) { method _fadeAndRemoveItem (line 1648) | _fadeAndRemoveItem(id) { method _clearAllDownloaded (line 1659) | _clearAllDownloaded() { method _updateClearAllButton (line 1668) | _updateClearAllButton() { method _defaultVideoToggle (line 1677) | _defaultVideoToggle() { method parseTime (line 1692) | parseTime(timeString) { method _formatTime (line 1727) | _formatTime(duration) { method _updateSliderUI (line 1751) | _updateSliderUI(movedSlider) { method setVideoLength (line 1832) | setVideoLength(duration) { FILE: src/types.d.ts type format (line 1) | type format = { type info (line 17) | type info = { FILE: translations/i18n.js function normalizeLocale (line 3) | function normalizeLocale(locale) { function getLocale (line 30) | async function getLocale() { function I18n (line 58) | function I18n() {