Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import all OS X tags attached to video files #370

Open
wants to merge 37 commits into
base: main
Choose a base branch
from
Open

Import all OS X tags attached to video files #370

wants to merge 37 commits into from

Conversation

whyboris
Copy link
Owner

@whyboris whyboris commented Feb 21, 2020

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
Copy link
Collaborator

cal2195 commented Feb 28, 2020

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! 🎉

main-support.ts Outdated
@@ -14,6 +20,8 @@ const hasher = require('crypto').createHash;

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

const tag = require('osx-tag');
Copy link
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 😄

main-support.ts Outdated
console.log('tags found:');
console.log(tags);
if (tags.length) {
imageElement.tags = tags;
Copy link
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
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
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
Copy link

alexhk commented May 9, 2021

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
Copy link
Owner Author

whyboris commented May 9, 2021

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
Owner Author

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

Main change: 5366071

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