@@ -369,6 +369,222 @@ def _real_extract(self, url):
369
369
return self ._get_disco_api_info (url , self ._match_id (url ), ** self ._DISCO_API_PARAMS )
370
370
371
371
372
+ class GoDiscoveryIE (DiscoveryPlusBaseIE ):
373
+ _VALID_URL = r'https?://(?:go\.)?discovery\.com/video' + DPlayBaseIE ._PATH_REGEX
374
+ _TESTS = [{
375
+ 'url' : 'https://go.discovery.com/video/dirty-jobs-discovery-atve-us/rodbuster-galvanizer' ,
376
+ 'info_dict' : {
377
+ 'id' : '4164906' ,
378
+ 'display_id' : 'dirty-jobs-discovery-atve-us/rodbuster-galvanizer' ,
379
+ 'ext' : 'mp4' ,
380
+ 'title' : 'Rodbuster / Galvanizer' ,
381
+ 'description' : 'Mike installs rebar with a team of rodbusters, then he galvanizes steel.' ,
382
+ 'season_number' : 9 ,
383
+ 'episode_number' : 1 ,
384
+ },
385
+ 'skip' : 'Available for Premium users' ,
386
+ }, {
387
+ 'url' : 'https://discovery.com/video/dirty-jobs-discovery-atve-us/rodbuster-galvanizer' ,
388
+ 'only_matching' : True ,
389
+ }]
390
+
391
+ _PRODUCT = 'dsc'
392
+ _DISCO_API_PARAMS = {
393
+ 'disco_host' : 'us1-prod-direct.go.discovery.com' ,
394
+ 'realm' : 'go' ,
395
+ 'country' : 'us' ,
396
+ }
397
+
398
+
399
+ class TravelChannelIE (DiscoveryPlusBaseIE ):
400
+ _VALID_URL = r'https?://(?:watch\.)?travelchannel\.com/video' + DPlayBaseIE ._PATH_REGEX
401
+ _TESTS = [{
402
+ 'url' : 'https://watch.travelchannel.com/video/ghost-adventures-travel-channel/ghost-train-of-ely' ,
403
+ 'info_dict' : {
404
+ 'id' : '2220256' ,
405
+ 'display_id' : 'ghost-adventures-travel-channel/ghost-train-of-ely' ,
406
+ 'ext' : 'mp4' ,
407
+ 'title' : 'Ghost Train of Ely' ,
408
+ 'description' : 'The crew investigates the dark history of the Nevada Northern Railway.' ,
409
+ 'season_number' : 24 ,
410
+ 'episode_number' : 1 ,
411
+ },
412
+ 'skip' : 'Available for Premium users' ,
413
+ }, {
414
+ 'url' : 'https://watch.travelchannel.com/video/ghost-adventures-travel-channel/ghost-train-of-ely' ,
415
+ 'only_matching' : True ,
416
+ }]
417
+
418
+ _PRODUCT = 'trav'
419
+ _DISCO_API_PARAMS = {
420
+ 'disco_host' : 'us1-prod-direct.watch.travelchannel.com' ,
421
+ 'realm' : 'go' ,
422
+ 'country' : 'us' ,
423
+ }
424
+
425
+
426
+ class CookingChannelIE (DiscoveryPlusBaseIE ):
427
+ _VALID_URL = r'https?://(?:watch\.)?cookingchanneltv\.com/video' + DPlayBaseIE ._PATH_REGEX
428
+ _TESTS = [{
429
+ 'url' : 'https://watch.cookingchanneltv.com/video/carnival-eats-cooking-channel/the-postman-always-brings-rice-2348634' ,
430
+ 'info_dict' : {
431
+ 'id' : '2348634' ,
432
+ 'display_id' : 'carnival-eats-cooking-channel/the-postman-always-brings-rice-2348634' ,
433
+ 'ext' : 'mp4' ,
434
+ 'title' : 'The Postman Always Brings Rice' ,
435
+ 'description' : 'Noah visits the Maui Fair and the Aurora Winter Festival in Vancouver.' ,
436
+ 'season_number' : 9 ,
437
+ 'episode_number' : 1 ,
438
+ },
439
+ 'skip' : 'Available for Premium users' ,
440
+ }, {
441
+ 'url' : 'https://watch.cookingchanneltv.com/video/carnival-eats-cooking-channel/the-postman-always-brings-rice-2348634' ,
442
+ 'only_matching' : True ,
443
+ }]
444
+
445
+ _PRODUCT = 'cook'
446
+ _DISCO_API_PARAMS = {
447
+ 'disco_host' : 'us1-prod-direct.watch.cookingchanneltv.com' ,
448
+ 'realm' : 'go' ,
449
+ 'country' : 'us' ,
450
+ }
451
+
452
+
453
+ class HGTVUsaIE (DiscoveryPlusBaseIE ):
454
+ _VALID_URL = r'https?://(?:watch\.)?hgtv\.com/video' + DPlayBaseIE ._PATH_REGEX
455
+ _TESTS = [{
456
+ 'url' : 'https://watch.hgtv.com/video/home-inspector-joe-hgtv-atve-us/this-mold-house' ,
457
+ 'info_dict' : {
458
+ 'id' : '4289736' ,
459
+ 'display_id' : 'home-inspector-joe-hgtv-atve-us/this-mold-house' ,
460
+ 'ext' : 'mp4' ,
461
+ 'title' : 'This Mold House' ,
462
+ 'description' : 'Joe and Noel help take a familys dream home from hazardous to fabulous.' ,
463
+ 'season_number' : 1 ,
464
+ 'episode_number' : 1 ,
465
+ },
466
+ 'skip' : 'Available for Premium users' ,
467
+ }, {
468
+ 'url' : 'https://watch.hgtv.com/video/home-inspector-joe-hgtv-atve-us/this-mold-house' ,
469
+ 'only_matching' : True ,
470
+ }]
471
+
472
+ _PRODUCT = 'hgtv'
473
+ _DISCO_API_PARAMS = {
474
+ 'disco_host' : 'us1-prod-direct.watch.hgtv.com' ,
475
+ 'realm' : 'go' ,
476
+ 'country' : 'us' ,
477
+ }
478
+
479
+
480
+ class FoodNetworkIE (DiscoveryPlusBaseIE ):
481
+ _VALID_URL = r'https?://(?:watch\.)?foodnetwork\.com/video' + DPlayBaseIE ._PATH_REGEX
482
+ _TESTS = [{
483
+ 'url' : 'https://watch.foodnetwork.com/video/kids-baking-championship-food-network/float-like-a-butterfly' ,
484
+ 'info_dict' : {
485
+ 'id' : '4116449' ,
486
+ 'display_id' : 'kids-baking-championship-food-network/float-like-a-butterfly' ,
487
+ 'ext' : 'mp4' ,
488
+ 'title' : 'Float Like a Butterfly' ,
489
+ 'description' : 'The 12 kid bakers create colorful carved butterfly cakes.' ,
490
+ 'season_number' : 10 ,
491
+ 'episode_number' : 1 ,
492
+ },
493
+ 'skip' : 'Available for Premium users' ,
494
+ }, {
495
+ 'url' : 'https://watch.foodnetwork.com/video/kids-baking-championship-food-network/float-like-a-butterfly' ,
496
+ 'only_matching' : True ,
497
+ }]
498
+
499
+ _PRODUCT = 'food'
500
+ _DISCO_API_PARAMS = {
501
+ 'disco_host' : 'us1-prod-direct.watch.foodnetwork.com' ,
502
+ 'realm' : 'go' ,
503
+ 'country' : 'us' ,
504
+ }
505
+
506
+
507
+ class DestinationAmericaIE (DiscoveryPlusBaseIE ):
508
+ _VALID_URL = r'https?://(?:www\.)?destinationamerica\.com/video' + DPlayBaseIE ._PATH_REGEX
509
+ _TESTS = [{
510
+ 'url' : 'https://www.destinationamerica.com/video/alaska-monsters-destination-america-atve-us/central-alaskas-bigfoot' ,
511
+ 'info_dict' : {
512
+ 'id' : '4210904' ,
513
+ 'display_id' : 'alaska-monsters-destination-america-atve-us/central-alaskas-bigfoot' ,
514
+ 'ext' : 'mp4' ,
515
+ 'title' : 'Central Alaskas Bigfoot' ,
516
+ 'description' : 'A team heads to central Alaska to investigate an aggressive Bigfoot.' ,
517
+ 'season_number' : 1 ,
518
+ 'episode_number' : 1 ,
519
+ },
520
+ 'skip' : 'Available for Premium users' ,
521
+ }, {
522
+ 'url' : 'https://www.destinationamerica.com/video/alaska-monsters-destination-america-atve-us/central-alaskas-bigfoot' ,
523
+ 'only_matching' : True ,
524
+ }]
525
+
526
+ _PRODUCT = 'dam'
527
+ _DISCO_API_PARAMS = {
528
+ 'disco_host' : 'us1-prod-direct.destinationamerica.com' ,
529
+ 'realm' : 'go' ,
530
+ 'country' : 'us' ,
531
+ }
532
+
533
+
534
+ class InvestigationDiscoveryIE (DiscoveryPlusBaseIE ):
535
+ _VALID_URL = r'https?://(?:www\.)?investigationdiscovery\.com/video' + DPlayBaseIE ._PATH_REGEX
536
+ _TESTS = [{
537
+ 'url' : 'https://www.investigationdiscovery.com/video/unmasked-investigation-discovery/the-killer-clown' ,
538
+ 'info_dict' : {
539
+ 'id' : '2139409' ,
540
+ 'display_id' : 'unmasked-investigation-discovery/the-killer-clown' ,
541
+ 'ext' : 'mp4' ,
542
+ 'title' : 'The Killer Clown' ,
543
+ 'description' : 'A wealthy Florida woman is fatally shot in the face by a clown at her door.' ,
544
+ 'season_number' : 1 ,
545
+ 'episode_number' : 1 ,
546
+ },
547
+ 'skip' : 'Available for Premium users' ,
548
+ }, {
549
+ 'url' : 'https://www.investigationdiscovery.com/video/unmasked-investigation-discovery/the-killer-clown' ,
550
+ 'only_matching' : True ,
551
+ }]
552
+
553
+ _PRODUCT = 'ids'
554
+ _DISCO_API_PARAMS = {
555
+ 'disco_host' : 'us1-prod-direct.investigationdiscovery.com' ,
556
+ 'realm' : 'go' ,
557
+ 'country' : 'us' ,
558
+ }
559
+
560
+
561
+ class AmHistoryChannelIE (DiscoveryPlusBaseIE ):
562
+ _VALID_URL = r'https?://(?:www\.)?ahctv\.com/video' + DPlayBaseIE ._PATH_REGEX
563
+ _TESTS = [{
564
+ 'url' : 'https://www.ahctv.com/video/modern-sniper-ahc/army' ,
565
+ 'info_dict' : {
566
+ 'id' : '2309730' ,
567
+ 'display_id' : 'modern-sniper-ahc/army' ,
568
+ 'ext' : 'mp4' ,
569
+ 'title' : 'Army' ,
570
+ 'description' : 'Snipers today face challenges their predecessors couldve only dreamed of.' ,
571
+ 'season_number' : 1 ,
572
+ 'episode_number' : 1 ,
573
+ },
574
+ 'skip' : 'Available for Premium users' ,
575
+ }, {
576
+ 'url' : 'https://www.ahctv.com/video/modern-sniper-ahc/army' ,
577
+ 'only_matching' : True ,
578
+ }]
579
+
580
+ _PRODUCT = 'ahc'
581
+ _DISCO_API_PARAMS = {
582
+ 'disco_host' : 'us1-prod-direct.ahctv.com' ,
583
+ 'realm' : 'go' ,
584
+ 'country' : 'us' ,
585
+ }
586
+
587
+
372
588
class ScienceChannelIE (DiscoveryPlusBaseIE ):
373
589
_VALID_URL = r'https?://(?:www\.)?sciencechannel\.com/video' + DPlayBaseIE ._PATH_REGEX
374
590
_TESTS = [{
@@ -383,6 +599,9 @@ class ScienceChannelIE(DiscoveryPlusBaseIE):
383
599
'episode_number' : 1 ,
384
600
},
385
601
'skip' : 'Available for Premium users' ,
602
+ }, {
603
+ 'url' : 'https://www.sciencechannel.com/video/strangest-things-science-atve-us/nazi-mystery-machine' ,
604
+ 'only_matching' : True ,
386
605
}]
387
606
388
607
_PRODUCT = 'sci'
@@ -407,6 +626,9 @@ class DIYNetworkIE(DiscoveryPlusBaseIE):
407
626
'episode_number' : 2 ,
408
627
},
409
628
'skip' : 'Available for Premium users' ,
629
+ }, {
630
+ 'url' : 'https://watch.diynetwork.com/video/pool-kings-diy-network/bringing-beach-life-to-texas' ,
631
+ 'only_matching' : True ,
410
632
}]
411
633
412
634
_PRODUCT = 'diy'
@@ -417,6 +639,33 @@ class DIYNetworkIE(DiscoveryPlusBaseIE):
417
639
}
418
640
419
641
642
+ class DiscoveryLifeIE (DiscoveryPlusBaseIE ):
643
+ _VALID_URL = r'https?://(?:www\.)?discoverylife\.com/video' + DPlayBaseIE ._PATH_REGEX
644
+ _TESTS = [{
645
+ 'url' : 'https://www.discoverylife.com/video/surviving-death-discovery-life-atve-us/bodily-trauma' ,
646
+ 'info_dict' : {
647
+ 'id' : '2218238' ,
648
+ 'display_id' : 'surviving-death-discovery-life-atve-us/bodily-trauma' ,
649
+ 'ext' : 'mp4' ,
650
+ 'title' : 'Bodily Trauma' ,
651
+ 'description' : 'Meet three people who tested the limits of the human body.' ,
652
+ 'season_number' : 1 ,
653
+ 'episode_number' : 2 ,
654
+ },
655
+ 'skip' : 'Available for Premium users' ,
656
+ }, {
657
+ 'url' : 'https://www.discoverylife.com/video/surviving-death-discovery-life-atve-us/bodily-trauma' ,
658
+ 'only_matching' : True ,
659
+ }]
660
+
661
+ _PRODUCT = 'dlf'
662
+ _DISCO_API_PARAMS = {
663
+ 'disco_host' : 'us1-prod-direct.discoverylife.com' ,
664
+ 'realm' : 'go' ,
665
+ 'country' : 'us' ,
666
+ }
667
+
668
+
420
669
class AnimalPlanetIE (DiscoveryPlusBaseIE ):
421
670
_VALID_URL = r'https?://(?:www\.)?animalplanet\.com/video' + DPlayBaseIE ._PATH_REGEX
422
671
_TESTS = [{
@@ -431,6 +680,9 @@ class AnimalPlanetIE(DiscoveryPlusBaseIE):
431
680
'episode_number' : 11 ,
432
681
},
433
682
'skip' : 'Available for Premium users' ,
683
+ }, {
684
+ 'url' : 'https://www.animalplanet.com/video/north-woods-law-animal-planet/squirrel-showdown' ,
685
+ 'only_matching' : True ,
434
686
}]
435
687
436
688
_PRODUCT = 'apl'
@@ -441,6 +693,33 @@ class AnimalPlanetIE(DiscoveryPlusBaseIE):
441
693
}
442
694
443
695
696
+ class TLCIE (DiscoveryPlusBaseIE ):
697
+ _VALID_URL = r'https?://(?:go\.)?tlc\.com/video' + DPlayBaseIE ._PATH_REGEX
698
+ _TESTS = [{
699
+ 'url' : 'https://go.tlc.com/video/my-600-lb-life-tlc/melissas-story-part-1' ,
700
+ 'info_dict' : {
701
+ 'id' : '2206540' ,
702
+ 'display_id' : 'my-600-lb-life-tlc/melissas-story-part-1' ,
703
+ 'ext' : 'mp4' ,
704
+ 'title' : 'Melissas Story (Part 1)' ,
705
+ 'description' : 'At 650 lbs, Melissa is ready to begin her seven-year weight loss journey.' ,
706
+ 'season_number' : 1 ,
707
+ 'episode_number' : 1 ,
708
+ },
709
+ 'skip' : 'Available for Premium users' ,
710
+ }, {
711
+ 'url' : 'https://go.tlc.com/video/my-600-lb-life-tlc/melissas-story-part-1' ,
712
+ 'only_matching' : True ,
713
+ }]
714
+
715
+ _PRODUCT = 'tlc'
716
+ _DISCO_API_PARAMS = {
717
+ 'disco_host' : 'us1-prod-direct.tlc.com' ,
718
+ 'realm' : 'go' ,
719
+ 'country' : 'us' ,
720
+ }
721
+
722
+
444
723
class DiscoveryPlusIE (DiscoveryPlusBaseIE ):
445
724
_VALID_URL = r'https?://(?:www\.)?discoveryplus\.com/(?!it/)(?:\w{2}/)?video' + DPlayBaseIE ._PATH_REGEX
446
725
_TESTS = [{
0 commit comments