Skip to content

Import all OS X tags attached to video files - #370

Open
whyboris wants to merge 39 commits into
mainfrom
os-tags
Open

whyboris wants to merge 39 commits into
mainfrom
os-tags

Conversation

@whyboris

@whyboris whyboris commented Feb 21, 2020 •

Copy link
Copy Markdown
Owner

Hooray for https://github.com/keichi/osx-tag 🎉

Works correctly, but I'll need to add some toggles so users can disable it 😓

⚠️ this dependency can't be installed on Windows and I would have to maintain a mac branch in order for this feature to exist. This isn't a problem, but I think this may be a mac-only feature for a while.

I looked around for an equivalent Windows solution but I don't think there's anything out there (it's not even clear if it's possible to access the tags of files on Windows -- and some file types don't seem to allow tags either!)

UPDATE

No longer using osx-tag because I found a native way to read tags directly with Node 🎉

5366071

@whyboris
whyboris requested a review from cal2195 February 21, 2020 23:13
This was referenced Feb 21, 2020
@whyboris whyboris added the ⛑️ WIP Work in progress label Feb 25, 2020
@cal2195

cal2195 commented Feb 28, 2020

Copy link
Copy Markdown
Collaborator

this dependency can't be installed on Windows and I would have to maintain a mac branch in order for this feature to exist.

Just add it as an optionalDependency and guard the code by checking if you're on a Mac! 🎉

Comment thread main-support.ts Outdated

const exec = require('child_process').exec;

const tag = require('osx-tag');

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guard this require, or try catch it 😄

Comment thread main-support.ts Outdated
console.log('tags found:');
console.log(tags);
if (tags.length) {
imageElement.tags = tags;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️⚠️⚠️ I think this will overwrite any user entered tags if you move the file within the video folder! ⚠️⚠️⚠️

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great catch! 👀

This code is WIP placeholder just to test out the library.

Thank you for adding the note -- I'll definitely not forget to fix it before merging 🤝

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm planning on adding my .tag file support after this, so we can probably make a nice way to implement both! 👍

@whyboris
whyboris changed the base branch from master to main July 26, 2020 20:05
@alexhk

alexhk commented May 9, 2021 •

Copy link
Copy Markdown

I don't think it's very common to use tags in the meta data (is that also called EXIF for videos?) on Windows. I didn't even know it existed, but I just checked and it is indeed there ;)

You could import tags, title, year, etc. (it depends a bit where the video came from, ie. videos from Twitter or local TV station websites have other meta data than Youtube).

If youtube-dl is used with --write-info-json it saves the file with a .info.json extension but the same file name as the video.

Most data is probably useless for VHA, but tags, titles, years, etc might be helpful, possibly also description, artist, language etc.

I assume this function would make VHA the go-to app for youtube-dl users, and there are many.

Example:
https://www.youtube.com/watch?v=bAnliCS9LhM

video.mp4
video.info.json

The following JSON data is a few months old:

{
	"upload_date": "20160212",
	"vcodec": "avc1.640028",
	"extractor": "youtube",
	"series": null,
	"chapters": null,
	"height": 1080,
	"like_count": 152,
	"duration": 144,
	"fulltitle": "A Bouncy Adventure - LEGO DUPLO - Mini Movie",
	"id": "bAnliCS9LhM",
	"album": null,
	"view_count": 280344,
	"playlist": null,
	"title": "A Bouncy Adventure - LEGO DUPLO - Mini Movie",
	"_filename": "/media/down/test/LEGO Little Ones [UCQ4igMzWw0NDcFnbX037byA]/A Bouncy Adventure - LEGO DUPLO - Mini Movie[bAnliCS9LhM].mp4",
	"creator": null,
	"is_live": null,
	"playlist_index": null,
	"dislike_count": 71,
	"average_rating": 3.7264574,
	"abr": 128,
	"tags": [
		"LEGO",
		"LEGO 2016",
		"LEGO Toys",
		"LEGO Group",
		"Legos",
		"Lego 2015",
		"Official Lego",
		"New LEGO",
		"lego duplo",
		"duplo",
		"kids",
		"toddler",
		"videos for toddlers",
		"preschool",
		"imagination",
		"creative",
		"mini movie",
		"duplo video",
		"duplo app",
		"app",
		"lego app",
		"duplo game",
		"games",
		"app store",
		"around the world",
		"lego mini movie",
		"funny video",
		"cute",
		"Singapore"
	],
	"uploader_url": "http://www.youtube.com/channel/UCQ4igMzWw0NDcFnbX037byA",
	"subtitles": {
	},
	"fps": 25,
	"stretched_ratio": null,
	"season_number": null,
	"annotations": null,
	"webpage_url_basename": "watch",
	"acodec": "mp4a.40.2",
	"display_id": "bAnliCS9LhM",
	"automatic_captions": {
	},
	"description": "Your favourite LEGO DUPLO Around the World characters are busy having a whale of a time! You can now enjoy short videos in all LEGO DUPLO apps, available for free in the app store.\n\niOS: https://itunes.apple.com/gb/app/lego-duplo-animals/id970399837?mt=8\n\nAndroid: https://play.google.com/store/apps/details?id=com.lego.duplo.forest&hl=en\n\nFor more LEGO\u00ae videos: https://www.youtube.com/LEGO \nFor more games and product information: http://www.lego.com/duplo\nLike our Facebook page at http://on.fb.me/1MceLIq",
	"format": "137 - 1920x1080 (1080p)+140 - audio only (tiny)",
	"track": null,
	"start_time": null,
	"uploader": "LEGO Little Ones",
	"format_id": "137+140",
	"episode_number": null,
	"uploader_id": "UCQ4igMzWw0NDcFnbX037byA",
	"categories": [
		"Entertainment"
	],
	"thumbnails": [
		{
			"url": "https://i.ytimg.com/vi/bAnliCS9LhM/hqdefault.jpg?sqp=-oaymwEYCKgBEF5IVfKriqkDCwgBFQAAiEIYAXAB&rs=AOn4CLAuIvD_SjLBwGdwtVeD38r_uLHoHg",
			"width": 168,
			"resolution": "168x94",
			"id": "0",
			"height": 94
		},
		{
			"url": "https://i.ytimg.com/vi/bAnliCS9LhM/hqdefault.jpg?sqp=-oaymwEYCMQBEG5IVfKriqkDCwgBFQAAiEIYAXAB&rs=AOn4CLBguE0N9CoJ-aSQkPzd_BENMtJAIQ",
			"width": 196,
			"resolution": "196x110",
			"id": "1",
			"height": 110
		},
		{
			"url": "https://i.ytimg.com/vi/bAnliCS9LhM/hqdefault.jpg?sqp=-oaymwEZCPYBEIoBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLBxq3raNBnRWJaZWDZzkqr_ALimsA",
			"width": 246,
			"resolution": "246x138",
			"id": "2",
			"height": 138
		},
		{
			"url": "https://i.ytimg.com/vi/bAnliCS9LhM/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLCVl0FZsw5bmLV-o4EqrMOHjarK5A",
			"width": 336,
			"resolution": "336x188",
			"id": "3",
			"height": 188
		},
		{
			"url": "https://i.ytimg.com/vi_webp/bAnliCS9LhM/maxresdefault.webp",
			"width": 1920,
			"resolution": "1920x1080",
			"id": "4",
			"height": 1080
		}
	],
	"release_year": null,
	"license": null,
	"artist": null,
	"extractor_key": "Youtube",
	"release_date": null,
	"alt_title": null,
	"channel_id": "UCQ4igMzWw0NDcFnbX037byA",
	"thumbnail": "https://i.ytimg.com/vi_webp/bAnliCS9LhM/maxresdefault.webp",
	"vbr": null,
	"ext": "mp4",
	"end_time": null,
	"webpage_url": "https://www.youtube.com/watch?v=bAnliCS9LhM",
	"formats": [
		{
			"asr": 48000,
			"tbr": 55.535,
			"protocol": "https",
			"format": "249 - audio only (tiny)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=249&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=audio%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=934572&dur=144.401&lmt=1456995740567850&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhALHR-_sGja8V7MCQBQR-6pBL7OJvN87GLBPays_UWcVwAiEA72P7WC0pjoxvcO0cze2F-F0-iMn1teWJMxpdzbST59E%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "none",
			"format_note": "tiny",
			"abr": 50,
			"player_url": null,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": null,
			"ext": "webm",
			"filesize": 934572,
			"fps": null,
			"format_id": "249",
			"height": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "opus"
		},
		{
			"asr": 48000,
			"tbr": 77.216,
			"protocol": "https",
			"format": "250 - audio only (tiny)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=250&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=audio%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=1241650&dur=144.401&lmt=1456995716792962&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAPrcGWMqvgriBUSzHvkiCRSki3GOl_7N_biiN-eYc80HAiBt7UPA4O17eD5sLKTwuzvGkV1-rJCjcCGKE1nWXd-Etg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "none",
			"format_note": "tiny",
			"abr": 70,
			"player_url": null,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": null,
			"ext": "webm",
			"filesize": 1241650,
			"fps": null,
			"format_id": "250",
			"height": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "opus"
		},
		{
			"asr": 44100,
			"tbr": 128.019,
			"container": "m4a_dash",
			"format": "140 - audio only (tiny)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=140&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=audio%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=2294922&dur=144.451&lmt=1456993776900373&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgOCBdMt2u7kHKvwByTXWO1lemmXZaj6fMbKZzAbneMmoCIQC3r46Al10Sljt3eu8jsoCj53Q1yP6e1qr5bK8W7sNmUw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "none",
			"format_note": "tiny",
			"abr": 128,
			"player_url": null,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": null,
			"ext": "m4a",
			"filesize": 2294922,
			"fps": null,
			"protocol": "https",
			"format_id": "140",
			"height": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "mp4a.40.2"
		},
		{
			"asr": 48000,
			"tbr": 148.132,
			"protocol": "https",
			"format": "251 - audio only (tiny)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=251&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=audio%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=2419725&dur=144.401&lmt=1456995728566173&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgGQPYPD84ax6kxK105-8fc2teCkeT-P3oKjcuuoKpjtcCIQCvKGZgvv-0mbuMDcp1MdjlGgPVROs-7UVAfgC9z2v_bg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "none",
			"format_note": "tiny",
			"abr": 160,
			"player_url": null,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": null,
			"ext": "webm",
			"filesize": 2419725,
			"fps": null,
			"format_id": "251",
			"height": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "opus"
		},
		{
			"asr": null,
			"tbr": 109.642,
			"container": "webm",
			"format": "278 - 256x144 (144p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=278&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=1566183&dur=144.320&lmt=1456995951510824&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAO-eYugK6mslRjRqgvbe9-lI2lVfzlCkTib1w_JN2QIXAiBRi3JIrqr3VLH80oTg9Zns35zN14sSdetsJFb50RH5fg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "144p",
			"player_url": null,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 256,
			"ext": "webm",
			"filesize": 1566183,
			"fps": 25,
			"protocol": "https",
			"format_id": "278",
			"height": 144,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 112.571,
			"protocol": "https",
			"format": "160 - 256x144 (144p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=160&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=1971166&dur=144.360&lmt=1456993925649163&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhANHdt8p5KnMNZVvOkQ9HnlLBaKnHq4-BvMYuUahZtupZAiB3wGouRXgt6_OnGmAIJKfKwOEMh61Tmj_ksbdKwdVTEQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.4d400c",
			"format_note": "144p",
			"height": 144,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 256,
			"ext": "mp4",
			"filesize": 1971166,
			"fps": 25,
			"format_id": "160",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 188.582,
			"protocol": "https",
			"format": "242 - 426x240 (240p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=242&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=2145242&dur=144.320&lmt=1456995951528675&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgQPABOf1jEMZxol15QTqvhJwrv1F3chbFNO6nLOoYlkECIQCvDXqs4ff8npH59gkaggULVLvsZ48w4Fu0KOVrFRbemQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "240p",
			"height": 240,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 426,
			"ext": "webm",
			"filesize": 2145242,
			"fps": 25,
			"format_id": "242",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 250.265,
			"protocol": "https",
			"format": "134 - 640x360 (360p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=134&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=4028958&dur=144.360&lmt=1456993925489940&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgT3PWKcNOqaIxFvz0gviL1ix9fbP11v-v_XkI0I4O3VoCIF1K-XjN1rJkFQwYszaPiaJ44aZXdnAlZ_SlOXqjtktj&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.4d401e",
			"format_note": "360p",
			"height": 360,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 640,
			"ext": "mp4",
			"filesize": 4028958,
			"fps": 25,
			"format_id": "134",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 255.029,
			"protocol": "https",
			"format": "133 - 426x240 (240p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=133&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=4356679&dur=144.360&lmt=1456993925493774&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgQx8oVsFYlFceYQi7DxYdD50wslksK1-nkbxZcQnm_1wCIEHjcXzv6UfEHfIzy0RkS3vsARxUl9zq9PoK5HmHUneo&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.4d4015",
			"format_note": "240p",
			"height": 240,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 426,
			"ext": "mp4",
			"filesize": 4356679,
			"fps": 25,
			"format_id": "133",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 308.47,
			"protocol": "https",
			"format": "243 - 640x360 (360p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=243&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=3501255&dur=144.320&lmt=1456995951823599&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAP_lANdy2VBpDLUaPkkIC9uVAqCUYBm-4hZjW8GMAK7aAiEAtC138gr6_m_Xus-jLfQk9A42HLE5duWlAHr5DS52hVU%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "360p",
			"height": 360,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 640,
			"ext": "webm",
			"filesize": 3501255,
			"fps": 25,
			"format_id": "243",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 444.735,
			"protocol": "https",
			"format": "244 - 854x480 (480p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=244&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=5227052&dur=144.320&lmt=1456995951995228&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAJ4q1vV3VETRx5Z-2ccqEN8f0aUrJum432uwH1UMpE8yAiA-fzM9KRX8Fd0licZ0jjdy4MhTZ8bNJpmv8HiILNfd5w%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "480p",
			"height": 480,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 854,
			"ext": "webm",
			"filesize": 5227052,
			"fps": 25,
			"format_id": "244",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 536.496,
			"protocol": "https",
			"format": "135 - 854x480 (480p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=135&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=8316299&dur=144.360&lmt=1456993925577384&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgB45tN7BnyOVpcT0Kq8pqspO3qxlFiO_CWymwYxxNZj0CIQC-c4s9A6KFd0TugGdbpDX1wPsG0ZsXiPP6iJ3XgzfBBA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.4d401e",
			"format_note": "480p",
			"height": 480,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 854,
			"ext": "mp4",
			"filesize": 8316299,
			"fps": 25,
			"format_id": "135",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 934.159,
			"protocol": "https",
			"format": "247 - 1280x720 (720p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=247&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=9826082&dur=144.320&lmt=1456995951890733&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgMgo2RMZIYTSzA9bRcJHB0QZJ0oQTQaPite1EwGXdfnACICShIMi71f92-lhYU_EM6mGzRoKI_JO_bQ06IlpeIZvW&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "720p",
			"height": 720,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 1280,
			"ext": "webm",
			"filesize": 9826082,
			"fps": 25,
			"format_id": "247",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 1110.11,
			"protocol": "https",
			"format": "136 - 1280x720 (720p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=136&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=16941498&dur=144.360&lmt=1456993925747327&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgRu11Su5ezSYstvG5JqsskAQROWCRufthvKnxzSR2WZQCIAGhtjGFu6iiKZoUZ19qDUFk5JqBWJbHzf8FNH3VQVvW&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.4d401f",
			"format_note": "720p",
			"height": 720,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 1280,
			"ext": "mp4",
			"filesize": 16941498,
			"fps": 25,
			"format_id": "136",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 1841.564,
			"protocol": "https",
			"format": "248 - 1920x1080 (1080p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=248&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fwebm&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=19578267&dur=144.320&lmt=1456995846318967&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgU5LoKbmKi-W37T36wSSDkDYlAWiXYB1XSClIvD_3WRECIE8ei-VZfplRZTc-HuJr_r6A3P8IvUas0acXbO3On9iP&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "vp9",
			"format_note": "1080p",
			"height": 1080,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 1920,
			"ext": "webm",
			"filesize": 19578267,
			"fps": 25,
			"format_id": "248",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": null,
			"tbr": 2197.995,
			"protocol": "https",
			"format": "137 - 1920x1080 (1080p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=137&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=hahWy3rmKEkNQaISpFPHkTMF&gir=yes&clen=33169682&dur=144.360&lmt=1456993963358958&mt=1609180369&fvip=3&keepalive=yes&c=WEB&n=M9ic9n6fHwvWQjdf&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgQADXd4n8WRwxfXFZO1fLmQVLNK628aX35P3YX-Gj964CIQDnpkFovSaXaOJahZvTUhFRPy12pNy9GDB_tImL63UeCA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK&ratebypass=yes",
			"vcodec": "avc1.640028",
			"format_note": "1080p",
			"height": 1080,
			"downloader_options": {
				"http_chunk_size": 10485760
			},
			"width": 1920,
			"ext": "mp4",
			"filesize": 33169682,
			"fps": 25,
			"format_id": "137",
			"player_url": null,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "none"
		},
		{
			"asr": 44100,
			"tbr": 368.168,
			"protocol": "https",
			"format": "18 - 640x360 (360p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=18&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=VkLGrksj0wOrcbWMYYNDUf0F&gir=yes&clen=6643607&ratebypass=yes&dur=144.451&lmt=1456993766857513&mt=1609180369&fvip=3&c=WEB&n=li6ieDPCYswE_1Si&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRAIgdya4RC4M3lNQAodZufLa2afG5fwG-_lF6ZW3Y4ikjOMCIHFVwhQa-raNtIEdvXQCJuA8bXxCMrbf61f9RzCSWha9&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK",
			"vcodec": "avc1.42001E",
			"format_note": "360p",
			"ext": "mp4",
			"player_url": null,
			"width": 640,
			"abr": 96,
			"filesize": 6643607,
			"fps": 25,
			"format_id": "18",
			"height": 360,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "mp4a.40.2"
		},
		{
			"asr": 44100,
			"tbr": 1065.684,
			"protocol": "https",
			"format": "22 - 1280x720 (720p)",
			"url": "https://r3---sn-h0jeener.googlevideo.com/videoplayback?expire=1609202222&ei=ziXqX9vqIsO9gAei2L5A&ip=80.108.112.4&id=o-AN6Q0FRkKSOtj542LRiXbqvDm8Huw4GWSjlhndL6s2Jo&itag=22&source=youtube&requiressl=yes&mh=AW&mm=31%2C26&mn=sn-h0jeener%2Csn-4g5e6nsy&ms=au%2Conr&mv=m&mvi=3&pl=16&initcwndbps=1560000&vprv=1&mime=video%2Fmp4&ns=VkLGrksj0wOrcbWMYYNDUf0F&ratebypass=yes&dur=144.451&lmt=1471536125775872&mt=1609180369&fvip=3&c=WEB&n=li6ieDPCYswE_1Si&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRAIgBv2gQbDquMlIRnge9QHeBTU_f_ApD4TLsmqehBsgQcACIH83YlC7R-pe_06WlC3O-UwT1Cl6kjGMn0jCghpYAUZI&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgD5E5uDFnEb32MUyACfRlOLM42mqMY6VlGZ_Q8jEbilICIHkaORERdklMiO4q_MoXqL50w5H1XJ_uQXJACaipc6KK",
			"vcodec": "avc1.64001F",
			"format_note": "720p",
			"ext": "mp4",
			"player_url": null,
			"width": 1280,
			"abr": 192,
			"filesize": null,
			"fps": 25,
			"format_id": "22",
			"height": 720,
			"http_headers": {
				"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
				"Accept-Language": "en-us,en;q=0.5",
				"Accept-Encoding": "gzip, deflate",
				"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
				"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3544.0 Safari/537.36"
			},
			"acodec": "mp4a.40.2"
		}
	],
	"channel_url": "http://www.youtube.com/channel/UCQ4igMzWw0NDcFnbX037byA",
	"resolution": null,
	"width": 1920,
	"age_limit": 0
}

@whyboris

whyboris commented May 9, 2021 •

Copy link
Copy Markdown
Owner Author

Thank you @alexhk for sharing! I suspect, as you say, there are people who use VHA that also use youtube-dl 🤔

Thank you for sharing an example JSON file. It seems to me like the description is something that we could import into the notes field.
Adding the tags wholesale may be overkill, so it would probably be best to place behind an optional toggle (with off being the default) 🤔
As you write, the year is probably worth auto-adding as well 👍

VHA, when I started it, was meant more as a browser for videos, but so many people wanted tags that I had to add the feature. Now that I have the word "organize" on the website, more and more people want to use the app for this purpose :trollface: ... I keep trying to carve out time in my life to spend more time on VHA but it's been challenging (moving to a new house this year). I'll see what I can do in the future ❤️

@whyboris

Copy link
Copy Markdown
Owner Author

👍 I merged in main and reviewed the code -- looks like I'm using a native way to read tags 😎

Main change: 5366071

@whyboris

Copy link
Copy Markdown
Owner Author

Eager to get VHA 3.3.0 released, this will wait for a future release ⚡

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⛑️ WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants