Skip to content

Commit 790a607

Browse files
committed
add YouTube integration! Phew! That is tiring
1 parent 3221301 commit 790a607

13 files changed

+614
-106
lines changed

README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,55 @@ $response = $amazonProductScrapingBeeClient
183183
Look at the source code of `src/LaravelScrapingBeeAmazonProduct.php` for the other methods (link below).
184184
[LaravelScrapingBeeAmazonProduct.php](https://github.com/ziming/laravel-scrapingbee/blob/main/src/LaravelScrapingBeeAmazonProduct.php)
185185

186+
### YouTube ScrapingBee Clients
187+
188+
#### YouTube ScrapingBee Search Client
189+
```php
190+
$youTubeScrapingBeeSearchClient = Ziming\LaravelScrapingBee\LaravelScrapingBeeYouTubeSearch::make();
191+
192+
$response = $youTubeScrapingBeeSearchClient
193+
->search('Python Tutorial')
194+
->get();
195+
````
196+
197+
Look at the source code of `src/LaravelScrapingBeeYouTubeSearch.php` for the other methods (link below).
198+
[LaravelScrapingBeeYouTubeSearch.php](https://github.com/ziming/laravel-scrapingbee/blob/main/src/LaravelScrapingBeeYouTubeSearch.php)
199+
200+
#### YouTube ScrapingBee Metadata Client
201+
```php
202+
$youTubeScrapingBeeMetadataClient = Ziming\LaravelScrapingBee\LaravelScrapingBeeYouTubeMetadata::make();
203+
$response = $youTubeScrapingBeeMetadataClient
204+
->videoId('rfscVS0vtbw')
205+
->get();
206+
```
207+
208+
Look at the source code of `src/LaravelScrapingBeeYouTubeMetadata.php` for the other methods (link below).
209+
[LaravelScrapingBeeYouTubeMetadata.php](https://github.com/ziming/laravel-scrapingbee/blob/main/src/LaravelScrapingBeeYouTubeMetadata.php)
210+
211+
#### YouTube ScrapingBee Transcript Client
212+
```php
213+
$youTubeScrapingBeeTranscriptClient = Ziming\LaravelScrapingBee\LaravelScrapingBeeYouTubeTranscript::make();
214+
$response = $youTubeScrapingBeeTranscriptClient
215+
->videoId('rfscVS0vtbw')
216+
->language('es')
217+
->transcriptOrigin('uploader_provided')
218+
->get();
219+
```
220+
221+
Look at the source code of `src/LaravelScrapingBeeYouTubeTranscript.php` for the other methods (link below).
222+
[LaravelScrapingBeeYouTubeTranscript.php](https://github.com/ziming/laravel-scrapingbee/blob/main/src/LaravelScrapingBeeYouTubeTranscript.php)
223+
224+
#### YouTube ScrapingBee Trainability Client
225+
```php
226+
$youTubeScrapingBeeTrainabilityClient = Ziming\LaravelScrapingBee\LaravelScrapingBeeYouTubeTrainability::make();
227+
$response = $youTubeScrapingBeeTrainabilityClient
228+
->videoId('rfscVS0vtbw')
229+
->get();
230+
```
231+
232+
Look at the source code of `src/LaravelScrapingBeeYouTubeTrainability.php` for the other methods (link below).
233+
[LaravelScrapingBeeYouTubeTrainability.php](https://github.com/ziming/laravel-scrapingbee/blob/main/src/LaravelScrapingBeeYouTubeTrainability.php)
234+
186235
### ChatGPT ScrapingBee Client
187236

188237
```php

config/scrapingbee.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@
1515
'amazon_search_base_url' => env('SCRAPINGBEE_AMAZON_SEARCH_BASE_URL', 'https://app.scrapingbee.com/api/v1/amazon/search'),
1616
'amazon_product_base_url' => env('SCRAPINGBEE_AMAZON_PRODUCT_BASE_URL', 'https://app.scrapingbee.com/api/v1/amazon/product'),
1717

18+
'youtube_search_base_url' => env('SCRAPINGBEE_YOUTUBE_SEARCH_BASE_URL', 'https://app.scrapingbee.com/api/v1/youtube/search'),
19+
'youtube_metadata_base_url' => env('SCRAPINGBEE_YOUTUBE_METADATA_BASE_URL', 'https://app.scrapingbee.com/api/v1/youtube/metadata'),
20+
'youtube_transcript_base_url' => env('SCRAPINGBEE_YOUTUBE_TRANSCRIPT_BASE_URL', 'https://app.scrapingbee.com/api/v1/youtube/transcript'),
21+
22+
// Check video transcript availability
23+
'youtube_trainability_base_url' => env('SCRAPINGBEE_YOUTUBE_TRAINABILITY_BASE_URL', 'https://app.scrapingbee.com/api/v1/youtube/trainability'),
1824

19-
// YouTube will come soon, but not yet
20-
// 'youtube_search_base_url' => env('SCRAPINGBEE_YOUTUBE_SEARCH_BASE_URL', 'https://app.scrapingbee.com/api/v1/youtube/search'),
2125

2226
'chatgpt_base_url' => env('SCRAPINGBEE_CHATGPT_BASE_URL', 'https://app.scrapingbee.com/api/v1/chatgpt'),
2327
];

src/LaravelScrapingBee.php

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public function post(string $url, array $data = [], string $postContentType = 'a
8787
}
8888

8989
/**
90-
* https://www.scrapingbee.com/documentation/#block-ads
90+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#block-ads
9191
*/
9292
public function blockAds(): self
9393
{
@@ -97,7 +97,7 @@ public function blockAds(): self
9797
}
9898

9999
/**
100-
* https://www.scrapingbee.com/documentation/#block-resources
100+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#block-resources
101101
*/
102102
public function allowResources(): self
103103
{
@@ -107,7 +107,7 @@ public function allowResources(): self
107107
}
108108

109109
/**
110-
* https://www.scrapingbee.com/documentation/#cookies
110+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#cookies
111111
*/
112112
public function setCustomCookies(array $cookies): self
113113
{
@@ -117,7 +117,7 @@ public function setCustomCookies(array $cookies): self
117117
}
118118

119119
/**
120-
* https://www.scrapingbee.com/documentation/#geolocation
120+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#geolocation
121121
*/
122122
public function countryCode(string $countryCode): self
123123
{
@@ -127,7 +127,7 @@ public function countryCode(string $countryCode): self
127127
}
128128

129129
/**
130-
* https://www.scrapingbee.com/documentation/#custom-google
130+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#custom-google
131131
*/
132132
public function customGoogle(): self
133133
{
@@ -137,7 +137,7 @@ public function customGoogle(): self
137137
}
138138

139139
/**
140-
* https://www.scrapingbee.com/documentation/#device
140+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#device
141141
*/
142142
public function device(string $device): self
143143
{
@@ -147,8 +147,8 @@ public function device(string $device): self
147147
}
148148

149149
/**
150-
* https://www.scrapingbee.com/documentation/#json_css
151-
* https://www.scrapingbee.com/documentation/data-extraction/
150+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#json_css
151+
* https://www.scrapingbee.com/documentation/data-extraction/?fpr=php-laravel
152152
* @throws JsonException
153153
*/
154154
public function extractDataFromCssRules(array $cssRules): self
@@ -159,8 +159,8 @@ public function extractDataFromCssRules(array $cssRules): self
159159
}
160160

161161
/*
162-
* https://www.scrapingbee.com/documentation/#ai_query
163-
* https://www.scrapingbee.com/documentation/#ai_selector
162+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#ai_query
163+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#ai_selector
164164
*
165165
* There is no aiSelector() method since it need to be used with aiQuery
166166
*/
@@ -176,8 +176,8 @@ public function aiQuery(string $query, ?string $selector = null): self
176176
}
177177

178178
/**
179-
* https://www.scrapingbee.com/documentation/#ai_extract_rules
180-
* https://www.scrapingbee.com/documentation/#ai_selector
179+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#ai_extract_rules
180+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#ai_selector
181181
* @throws JsonException
182182
*/
183183
public function aiExtractRules(array $rules, ?string $selector = null): self
@@ -192,7 +192,7 @@ public function aiExtractRules(array $rules, ?string $selector = null): self
192192
}
193193

194194
/**
195-
* https://www.scrapingbee.com/documentation/#json_response
195+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#json_response
196196
*/
197197
public function jsonResponse(): self
198198
{
@@ -202,7 +202,7 @@ public function jsonResponse(): self
202202
}
203203

204204
/**
205-
* https://www.scrapingbee.com/documentation/#return_page_source
205+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#return_page_source
206206
*/
207207
public function returnPageSource(bool $returnPageSource = true): self
208208
{
@@ -211,6 +211,9 @@ public function returnPageSource(bool $returnPageSource = true): self
211211
return $this;
212212
}
213213

214+
/*
215+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#scraping_config
216+
*/
214217
public function scrapingConfig(string $configName): self
215218
{
216219
$this->params['scraping_config'] = $configName;
@@ -219,7 +222,7 @@ public function scrapingConfig(string $configName): self
219222
}
220223

221224
/**
222-
* https://www.scrapingbee.com/documentation/#javascript-execution
225+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-execution
223226
*/
224227
public function jsSnippet(string $jsCodeSnippet): self
225228
{
@@ -229,7 +232,7 @@ public function jsSnippet(string $jsCodeSnippet): self
229232
}
230233

231234
/**
232-
* https://www.scrapingbee.com/documentation/#javascript-scroll
235+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-scroll
233236
*/
234237
public function jsScroll(): self
235238
{
@@ -239,7 +242,7 @@ public function jsScroll(): self
239242
}
240243

241244
/**
242-
* https://www.scrapingbee.com/documentation/#javascript-scroll
245+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-scroll
243246
*/
244247
public function jsScrollWait(int $milliseconds): self
245248
{
@@ -249,7 +252,7 @@ public function jsScrollWait(int $milliseconds): self
249252
}
250253

251254
/**
252-
* https://www.scrapingbee.com/documentation/#javascript-scroll
255+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-scroll
253256
*/
254257
public function jsScrollCount(int $count): self
255258
{
@@ -259,7 +262,7 @@ public function jsScrollCount(int $count): self
259262
}
260263

261264
/**
262-
* https://www.scrapingbee.com/documentation/#premium-proxy
265+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#premium-proxy
263266
*/
264267
public function premiumProxy(): self
265268
{
@@ -269,7 +272,7 @@ public function premiumProxy(): self
269272
}
270273

271274
/**
272-
* https://www.scrapingbee.com/documentation/#stealth_proxy
275+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#stealth_proxy
273276
*/
274277
public function stealthProxy(): self
275278
{
@@ -279,7 +282,7 @@ public function stealthProxy(): self
279282
}
280283

281284
/**
282-
* https://www.scrapingbee.com/documentation/#own_proxy
285+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#own_proxy
283286
*/
284287
public function ownProxy(string $proxy): self
285288
{
@@ -289,7 +292,7 @@ public function ownProxy(string $proxy): self
289292
}
290293

291294
/**
292-
* https://www.scrapingbee.com/documentation/#javascript-rendering
295+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-rendering
293296
*/
294297
public function disableJs(): self
295298
{
@@ -299,8 +302,8 @@ public function disableJs(): self
299302
}
300303

301304
/**
302-
* https://www.scrapingbee.com/documentation/#javascript-execution
303-
* https://www.scrapingbee.com/documentation/js-scenario/
305+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#javascript-execution
306+
* https://www.scrapingbee.com/documentation/?fpr=php-laraveljs-scenario/
304307
* @throws JsonException
305308
*/
306309
public function jsScenario(array $instructions, bool $strict = true): self
@@ -314,7 +317,7 @@ public function jsScenario(array $instructions, bool $strict = true): self
314317
}
315318

316319
/**
317-
* https://www.scrapingbee.com/documentation/#page-source
320+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#page-source
318321
*/
319322
public function pageSource(): self
320323
{
@@ -324,7 +327,7 @@ public function pageSource(): self
324327
}
325328

326329
/**
327-
* https://www.scrapingbee.com/documentation/#session_id
330+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#session_id
328331
*/
329332
public function session(int $id): self
330333
{
@@ -334,7 +337,7 @@ public function session(int $id): self
334337
}
335338

336339
/**
337-
* https://www.scrapingbee.com/documentation/#timeout
340+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#timeout
338341
*/
339342
public function timeout(int $milliseconds): self
340343
{
@@ -344,7 +347,7 @@ public function timeout(int $milliseconds): self
344347
}
345348

346349
/**
347-
* https://www.scrapingbee.com/documentation/#screenshot
350+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#screenshot
348351
*/
349352
public function screenshot(): self
350353
{
@@ -354,7 +357,7 @@ public function screenshot(): self
354357
}
355358

356359
/**
357-
* https://www.scrapingbee.com/documentation/#screenshot_selector
360+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#screenshot_selector
358361
*/
359362
public function screenshotSelector(string $selector): self
360363
{
@@ -364,7 +367,7 @@ public function screenshotSelector(string $selector): self
364367
}
365368

366369
/**
367-
* https://www.scrapingbee.com/documentation/#screenshot_full_page
370+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#screenshot_full_page
368371
*/
369372
public function screenshotFullPage(): self
370373
{
@@ -374,7 +377,7 @@ public function screenshotFullPage(): self
374377
}
375378

376379
/**
377-
* https://www.scrapingbee.com/documentation/#transparent_status_code
380+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#transparent_status_code
378381
*/
379382
public function transparentHttpStatusCode(): self
380383
{
@@ -384,7 +387,7 @@ public function transparentHttpStatusCode(): self
384387
}
385388

386389
/**
387-
* https://www.scrapingbee.com/documentation/#wait
390+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#wait
388391
*/
389392
public function wait(int $milliseconds): self
390393
{
@@ -394,7 +397,7 @@ public function wait(int $milliseconds): self
394397
}
395398

396399
/**
397-
* https://www.scrapingbee.com/documentation/#wait-for
400+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#wait-for
398401
*/
399402
public function waitForCssSelector(string $cssSelector): self
400403
{
@@ -404,7 +407,7 @@ public function waitForCssSelector(string $cssSelector): self
404407
}
405408

406409
/**
407-
* https://www.scrapingbee.com/documentation/#wait_browser
410+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#wait_browser
408411
*/
409412
public function waitForBrowser(string $networkCondition = 'domcontentloaded'): self
410413
{
@@ -414,7 +417,7 @@ public function waitForBrowser(string $networkCondition = 'domcontentloaded'): s
414417
}
415418

416419
/**
417-
* https://www.scrapingbee.com/documentation/#width_or_height
420+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#width_or_height
418421
*/
419422
public function windowWidth(int $windowWidth): self
420423
{
@@ -424,7 +427,7 @@ public function windowWidth(int $windowWidth): self
424427
}
425428

426429
/**
427-
* https://www.scrapingbee.com/documentation/#width_or_height
430+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#width_or_height
428431
*/
429432
public function windowHeight(int $windowHeight): self
430433
{
@@ -434,7 +437,7 @@ public function windowHeight(int $windowHeight): self
434437
}
435438

436439
/**
437-
* https://www.scrapingbee.com/documentation/data-extraction/#output
440+
* https://www.scrapingbee.com/documentation/data-extraction/?fpr=php-laravel#output
438441
*/
439442
public function output(string $output): self
440443
{
@@ -501,7 +504,7 @@ private function reset(): self
501504
}
502505

503506
/**
504-
* https://www.scrapingbee.com/documentation/#UsageEndpoint
507+
* https://www.scrapingbee.com/documentation/?fpr=php-laravel#UsageEndpoint
505508
*/
506509
public function usageStatistics(): Response
507510
{

0 commit comments

Comments
 (0)