ytv
Version:
Get the Youtube Video Info by Url of Youtube Video
58 lines (50 loc) • 1.31 kB
JavaScript
/**
* @readonly
* @const {string}
*/
const SEARCH_LINK = "https://www.youtube.com/results?search_query=";
/**
*
* @param {string} url youtube url
* @returns {boolean} boolean
*/
let is_url = (url) => {
let url_regex = /^(?:(?:https?:)?\/\/)?(?:www\.)?(?:m\.)?(?:youtu(?:be)?\.com\/(?:v\/|embed\/|watch(?:\/|\?v=))|youtu\.be\/)((?:\w|-){11})(?:\S+)?$/;
return !!String(url).match(url_regex);
}
/**
* @param {Object} obj flatten target object
* @returns {Object} flatten object
*/
let flatten_object = (obj) => {
const result = {}
function recurse(tab, current, prop) {
if (Object(current) !== current) {
result[" ".repeat(tab) + prop] = current
} else if (Array.isArray(current)) {
let l;
for (let i = 0, l = current.length; i < l; i++) {
recurse(tab + 1, current[i], `${prop}[${i}]`)
}
if (l == 0) {
result[prop] = []
}
} else {
let isEmpty = true
for (const p in current) {
isEmpty = false
recurse(tab + 1, current[p], prop ? `${prop}.${p}` : p)
}
if (isEmpty && prop) {
result[prop] = {}
}
}
}
recurse(0, obj, '');
return result
}
module.exports = {
SEARCH_LINK,
is_url,
flatten_object
}