Youtube Bulk avatar

Youtube Bulk

Try Actor

$12.00/month

Go to Store
Youtube Bulk

Youtube Bulk

canadesk/youtube-bulk
Try Actor

$12.00/month

No limits and Bulk mode! Collect channels, videos (with comments), streams, playlists, podcasts and posts from Youtube! Supports a lot of filters. It's fast and costs little!

Input and Output

[Input]

  • Process (select)

  • Mode (select) | ⚠ Currently only implemented for Playlist content type!

    By default, results include only the immediate content, not their children.

    If you choose to include full details, a new request will be made for every media found. For media with comments, new requests will be made for each comment page.

    The "Parallelism" parameter determines how many requests are sent at the same time. The higher the value, the more chances there are to be blocked.

    Example for playlist: Default returns the playlist and the list of videos, but not the details and comments of each individual video.

    Example for "Get Channel Everything/Tab": Default returns the list of each target content type (Videos, Shorts, etc.), but not the full details of each content.

  • Query (string)

    For "Get" processes: Enter the direct Channel URL for "Channel Home", or include the full path for "Channel Tab".

    For "Search": Enter the keyword(s). Live streams and shorts are categorized as videos.

  • Sorting (select)

    Popular (most views or likes), Latest or Oldest.

    For "Get Channel Everything/Tab": Applies to the content itself.

    For "Get Video": Applies to the comments.

  • Search filters (select)

    Only for "Search" process. Allows you to set a filter for Upload Date (e.g., Today) or Type (e.g., Video) or Duration (e.g., under 20mins) Features (e.g., HD) or Sort By.

  • Date filter (array)

    Removes results with a published date outside the range. This is applied AFTER data is collected.

    For example, if you return a maximum of 50 items, the date range will be checked against those 50.

    Not all content returns a date (e.g., Channel, Shorts), and this does not support the "Search" process. Use search filters instead.

    The array must have either two entries or none:

    • Between two dates: ["2024-03-05", "2024-04-05"]

    • Before date: ["", "2024-04-05"]

    • After date: ["2024-03-05", ""]

    • Default: []

  • Maximum (integer)

    Stops pagination once the total number of results (items or comments) exceeds the maximum.

[Output examples]

Get Channel Everything returns:

The object is the same as the one returned by "Get Channel Tab".

1[
2	"videos": object,
3	"shorts": object,
4	"streams": object,
5	"podcasts": object,
6	"playlists": object,
7	"community": object
8]

Get Channel Tab returns:

1{
2	"title": "How to scrape ANY website with Apify’s Web Scraper API",
3	"id": "5kcaHAuGxmY",
4	"url": "https://www.youtube.com/watch?v=5kcaHAuGxmY",
5	"channelName": "Apify",
6	"thumbnails": [
7		{
8			"url": "https://i.ytimg.com/vi/5kcaHAuGxmY/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB1b-rRvLm_luSBJKugWRJpzIbm_w",
9			"width": 168,
10			"height": 94
11		},
12		...
13	],
14	"duration": "00:05:30",		// null for Shorts, or number of videos for Playlists
15	"views": 4649,				// null for Playlists
16	"published": "2024-09-07",	// null for Shorts
17	"chapters": []				// Only for videos
18}

Get Channel Tab for /community returns:

1{
2	"id": "UgkxE48-VjgNu0iISTtWPiXR_hc1AfqsP8Z-",
3	"url": "https://www.youtube.com/post/UgkxE48-VjgNu0iISTtWPiXR_hc1AfqsP8Z-",
4	"channelName": "Apify",
5	"content": "Celebrating 5K YouTube Followers GIVEAWAY! 🎉\n\nTo say thanks, we’re giving away 3x $50 Apify coupons.\n\nHow to join:\n1️⃣ Subscribe to our YouTube channel\n2️⃣ Visit our LinkedIn, Twitter, or Discord\n3️⃣ Follow the instructions!\n\nDeadline: December 11\n\nYou can join on all 3 platforms to win a total of 9 coupons!",
6	"media": [
7		{
8			"url": "https://yt3.ggpht.com/pMfTkPYdZbobr9H3xhiseguI1pKMyrvvjregjWzDfY814lmF1TE43BQJsYYW77Isb1Bx-CQywZi--g=s288-c-fcrop64=1,691e0000f91effff-rw-nd-v1",
9			"width": 288,
10			"height": 288
11		},
12		...
13	],
14	"poll": {
15		"choices": [
16			"Facebook Pages Scraper",
17			"Download HTML from URLs",
18			"Traffic Generator",
19			"Cheerio Scraper",
20			"Tripadvisor Scraper"
21		],
22		"votes": 10
23	},
24	"published": "2024-12-05",
25	"likes": 2
26}

Get Video returns:

1{
2	"title": "Jan Čurn - How to feed LLMs with data from the web | WebExpo 2024",
3	"id": "DuHPhWEalG4",
4	"url": "https://www.youtube.com/watch?v=DuHPhWEalG4",
5	"shortDescription": "All major generative AI models have been trained using data scraped from the web. Applications of large language models (LLMs) often extract web data to provide up-to-date context using Retrieval Augmented Generation (RAG). Unfortunately, reliably collecting online data at scale is challenging due to issues like blocking, dynamic content rendering, and the sheer volume of data. In this talk, Jan will explain how you can establish an efficient web data extraction pipeline, clean the HTML to circumvent the “garbage in, garbage out” problem, and demonstrate how to use this in an LLM application. The demo uses Apify's Website Content Crawler https://apify.com/apify/website-content-crawler - a specialized crawler built for the LLM and RAG use cases.\n\nThis talk was presented at the WebExpo Conference in Prague on May 30, 2024 🎤 \n\nBig thanks to the WebExpo team for allowing us to publish this recording 🤝🏻\n\n📲 Follow Jan: https://linkedin.com/in/jancurn https://twitter.com/jancurn\n🌍 Get your ticket for the next WebExpo: https://webexpo.net/\n🔍 Watch our webinar on feeding your LLMs with web data: https://www.youtube.com/watch?v=8uvHH-ocSes\n\nMore AI-related resources from Apify 🧑‍💻\n🧠 Explore tools we offer to ingest entire websites and feed data for AI/LLM: https://apify.it/3zPzrYT\n🛍️ Browse AI scrapers and automation tools: https://apify.it/3LDM3oQ\n🤩 Learn more about Apify: https://apify.it/46hlxLr\n\nFollow us 🤳\nhttps://www.linkedin.com/company/apifytech\nhttps://twitter.com/apify\nhttps://www.tiktok.com/@apifytech\nhttps://discord.com/invite/jyEM2PRvMU\n\n#webscraping #webexpo #llm #ai",
6	"channel": {
7		"name": "Apify",
8		"id": "UCTgwcoeGGKmZ3zzCXN2qo_A",
9		"url": "https://www.youtube.com/@Apify",
10		"subscribers": 512,
11		"icons": [
12			{
13				"url": "https://yt3.ggpht.com/0C0AcuOEiqNP-o03aAu21FOLlIYgRjGAO6Y4SZH8TFgfQG1jEro5ydVeGSx15VNcMryQ5GpV=s48-c-k-c0x00ffffff-no-rj",
14				"width": 48,
15				"height": 48
16			},
17			...
18		]
19	},
20	"duration": "00:29:44",
21	"thumbnails": [
22		{
23			"url": "https://i.ytimg.com/vi/DuHPhWEalG4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAnSKo_qbu-PJhbL9eXYFby-G6krA",
24			"width": 168,
25			"height": 94
26		},
27		...
28	],
29	"ratings": {
30		"likes": 21,
31		"dislikes": 0
32	},
33	"views": 581,
34	"published": "2024-07-25T18:20:14",
35	"publishedTimezoneUTC": "-04:00",
36	"uploaded": "2024-07-25T18:20:14",
37	"uploadedTimezoneUTC": "-04:00",
38	"keywords": [
39		"web scraping platform",
40		"web automation",
41		"scrapers",
42		...
43	],
44	"allowRatings": true,
45	"isLive": false,
46	"isUnlisted": false,
47	"isFamilySafe": true,
48	"isShortsEligible": false,
49	"category": "Science & Technology",
50	"embed": {
51		"iframeUrl": "https://www.youtube.com/embed/DuHPhWEalG4",
52		"width": 1280,
53		"height": 720
54	},
55	"comments": [
56		{
57			"id": "Ugw-BTvAevIZnU1Ys4l4AaABAg",
58			"author": "@futuregootecks",
59			"channelId": "https://www.youtube.com/@futuregootecks",
60			"text": "Wow, I had no idea what RAG was but kept seeing it everywhere and also had no idea how easy it would be to train my own LLM on scraped data!!! I’m in!!! 🎉",
61			"likes": 1,
62			"dislikes": 0,
63			"published": "2024-10-07",
64			"replies": 0
65		},
66		...
67	],
68	"streamingData": object	// Stream technical data
69}

Get List returns:

1{
2	"title": "Web Scraping & Automation Tutorials",
3	"id": "PLObrtcm1Kw6PmbXg8bmfJN",
4	"url": "https://www.youtube.com/watch?v=rjbrGB5Rkbk&list=PLObrtcm1Kw6PmbXg8bmfJN-o2Hgx8sidf",
5	"channelName": "Apify",
6	"totalVideos": 66,
7	"videos": [
8		{
9			"title": "Extract Posts From an Instagram Hashtag - Instagram Hashtag Scraper Tutorial",
10			"id": "rjbrGB5Rkbk",
11			"url": "https://www.youtube.com/watch?v=rjbrGB5Rkbk&list=PLObrtcm1Kw6PmbXg8bmfJN-o2Hgx8sidf&index=1&pp=iAQB",
12			"channelName": "Apify",
13			"thumbnails": [
14				{
15					"url": "https://i.ytimg.com/vi/rjbrGB5Rkbk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBjlVRY_Lhklxixhlqq4iNMEBbk_w",
16					"width": 168,
17					"height": 94
18				},
19				...
20			],
21			"duration": "3:04",
22			"views": null,
23			"published": null,
24			"chapters": []
25		},
26		...
27	]
28}

Search returns:

"Latest" contains the sections displayed between search results, such as "Latest Shorts from..." or "Latest posts from...".

1{
2	"query": "apify playlist",
3	"tags": [
4		"spx options",
5		"apify make",
6		"leadsgorilla",
7		"outscraper",
8		"apify web scraper tutorial"
9	],
10	"videos": [
11		{
12			"title": "How To Scrape ALL Comments From a Video - YouTube Comment Scraper API Tutorial",
13			"id": "LOmod3V9pZw",
14			"url": "https://www.youtube.com/watch?v=LOmod3V9pZw&pp=ygUOYXBpZnkgcGxheWxpc3Q%3D",
15			"channelName": "Apify",
16			"thumbnails": [
17				{
18					"url": "https://i.ytimg.com/vi/LOmod3V9pZw/hq720.jpg?sqp=-oaymwEcCOgCEMoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCCb3Cd_udGKXiORVpxMOueyyXIqA",
19					"width": 360,
20					"height": 202
21				},
22				...
23			],
24			"duration": "00:03:10",
25			"views": 73,
26			"published": "2024-12-04",
27			"chapters": []
28		},
29		...
30	],
31	"channels": [
32		{
33			"name": "Apify",
34			"id": "UCTgwcoeGGKmZ3zzCXN2qo_A",
35			"url": "https://www.youtube.com/@Apify",
36			"rssUrl": null,
37			"vanityUrl": "/@Apify",
38			"linkAlternates": [],
39			"description": "Welcome to  Apify's  official YouTube channel!  Apify  is a web scraping and automation platform, which lets you automate anything ...",
40			"subscribers": 5110,
41			"videoCount": 511,
42			"website": null,
43			"banner": [],
44			"tvBanner": [],
45			"mobileBanner": [],
46			"badges": [],
47			"thumbnails": [
48				{
49					"url": "//yt3.ggpht.com/0C0AcuOEiqNP-o03aAu21FOLlIYgRjGAO6Y4SZH8TFgfQG1jEro5ydVeGSx15VNcMryQ5GpV=s88-c-k-c0x00ffffff-no-rj-mo",
50					"width": 88,
51					"height": 88
52				},
53				...
54			],
55			"tags": [],
56			"videos": [],
57			"unlisted": false,
58			"familySafe": true
59		}
60	],
61	"playlists": [
62		{
63			"title": "Apify & Web Scraping Full Course",
64			"id": "PLSl0igoJine_pCcq_ia9DBwIoohv_XRqn",
65			"url": "https://www.youtube.comCLABENLEDBgBIhMInP7_v4iUigMV87iVAh1Mzwhk",
66			"thumbnails": [
67				{
68					"url": "https://i.ytimg.com/vi/pKgup8tsPv8/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLDFGA1X6w9o4jXMl_NBHGFa7yxu4A",
69					"width": 168,
70					"height": 94
71				},
72				...
73			],
74			"duration": "11",
75			"views": null
76		},
77		...
78	],
79	"latest": {
80		"videos": object,
81		"shorts": object,
82		"community": object
83	},
84	"filters": [
85		{
86			"title": "Upload date",
87			"filters": [
88				{
89					"label": "Last hour",
90					"url": "/results?search_query=apify+playlist&sp=EgIIAQ%253D%253D"
91				},
92				{
93					"label": "Today",
94					"url": "/results?search_query=apify+playlist&sp=EgIIAg%253D%253D"
95				},
96				...
97			]
98		},
99		...
100	],
101}

How it works.

  1. Set the parameters.

  2. Set waiting time and retries.

  3. Run it! 🎉

Support

Always use a strong proxy, and make sure to wait long enough between requests!

Open a new issue for bugs and feature requests. Please share your Run URL and Input.

Cheers!

Developer
Maintained by Community

Actor Metrics

  • 1 monthly user

  • 0 No stars yet

  • Created in Dec 2024

  • Modified 6 hours ago