Skip to content

Commit 6ea8408

Browse files
committedJul 25, 2019
fixing non-working sites
1 parent fab3c87 commit 6ea8408

14 files changed

+94
-232
lines changed
 

‎Makefile

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ prefix=/usr/local
66
bindir=$(prefix)${exec_prefix}/bin
77
DESTDIR=
88
FLAGS=$(CFLAGS) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_LIBZ=1 -D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DHAVE_LIBSSL=1 -DHAVE_LIBCRYPTO=1
9-
OBJ=common.o settings.o containerfiles.o outputfiles.o servicetypes.o extract_text.o download.o display.o players.o selectformat.o ehow.o ign.o youtube.o
9+
OBJ=common.o settings.o containerfiles.o outputfiles.o servicetypes.o extract_text.o download.o display.o players.o selectformat.o ehow.o youtube.o
1010

1111
all: $(OBJ)
1212
@cd libUseful; $(MAKE)
13-
$(CC) $(FLAGS) -o movgrab main.c $(LIBS) $(OBJ) libUseful/libUseful.a
13+
$(CC) $(FLAGS) -o movgrab main.c $(OBJ) libUseful/libUseful.a $(LIBS)
1414

1515
clean:
1616
@rm -f movgrab *.o libUseful/*.o libUseful/*.a libUseful/*.so config.log config.status
@@ -30,9 +30,6 @@ outputfiles.o: outputfiles.c outputfiles.h
3030
ehow.o: ehow.c ehow.h
3131
$(CC) $(FLAGS) -c ehow.c
3232

33-
ign.o: ign.c ign.h
34-
$(CC) $(FLAGS) -c ign.c
35-
3633
youtube.o: youtube.c youtube.h
3734
$(CC) $(FLAGS) -c youtube.c
3835

@@ -58,3 +55,6 @@ extract_text.o: extract_text.c extract_text.h
5855
install:
5956
$(INSTALL) -d $(DESTDIR)$(bindir)
6057
$(INSTALL) movgrab $(DESTDIR)$(bindir)
58+
59+
test:
60+
echo "no tests"

‎README

-11
This file was deleted.

‎common.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#define MOVGRAB_COMMON
44

55
//This is doable through autoconf, but I'm sick of fighting with it
6-
#define Version "3.1.2"
6+
#define Version "4.0"
77

88
#include "libUseful/libUseful.h"
99
#include <string.h>
@@ -32,6 +32,7 @@
3232
#define FLAG_POST 262144
3333
#define FLAG_PLAYER_AUTO 524288
3434
#define FLAG_NOOUT 1048576
35+
#define FLAG_DOWNLOAD_SIZE 2097152
3536

3637

3738
extern int Type, Flags;

‎display.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ extern char *CmdLine, *ProgName;
88

99

1010

11-
int DisplayAvailableFormats(ListNode *Vars, char *Formats, int ShowSize)
11+
int DisplayAvailableFormats(ListNode *Vars, char *Formats)
1212
{
1313
char *URL=NULL, *Token=NULL, *TokenID=NULL, *Tempstr=NULL, *ptr;
1414
STREAM *S;
@@ -27,7 +27,7 @@ if (strcmp(Token,"reference") !=0)
2727
{
2828
fprintf(stderr,"%s",Token);
2929

30-
if (ShowSize)
30+
if (Flags & FLAG_DOWNLOAD_SIZE)
3131
{
3232
S=STREAMOpen(URL, "H");
3333
if (S)

‎display.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
extern int DisplayTitleWidth;
77

8-
int DisplayAvailableFormats(ListNode *Vars, char *Formats, int ShowSize);
8+
int DisplayAvailableFormats(ListNode *Vars, char *Formats);
99
void DisplayProgress(const char *FullTitle, const char *Format, double bytes_read, double DocSize, int PrintName);
1010

1111
#endif

‎ign.c

-49
This file was deleted.

‎ign.h

-9
This file was deleted.

‎libUseful/config.log

+32-26
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ generated by GNU Autoconf 2.69. Invocation command line was
1010
## Platform. ##
1111
## --------- ##
1212

13-
hostname = columPC
14-
uname -m = x86_64
15-
uname -r = 5.1.15-64
13+
hostname = graphics
14+
uname -m = x86
15+
uname -r = 4.16.13-64
1616
uname -s = Linux
17-
uname -v = #1 SMP Mon Jul 1 14:00:23 BST 2019
17+
uname -v = #388 SMP Sat Feb 23 07:27:36 UTC 2019
1818

1919
/usr/bin/uname -p = unknown
20-
/bin/uname -X = unknown
20+
/bin/uname -X =
2121

2222
/bin/arch = unknown
2323
/usr/bin/arch -k = unknown
@@ -35,34 +35,40 @@ PATH: /bin
3535
PATH: /usr/games/bin
3636
PATH: .
3737
PATH: /opt/Csound-6.05/bin
38-
PATH: /opt/FLTK/bin
39-
PATH: /opt/Python-2.7.13/bin
38+
PATH: /opt/LibreCAD/bin
39+
PATH: /opt/Python-2.7.15/bin
40+
PATH: /opt/Python-3.5.6/bin
4041
PATH: /opt/Python-3.7.1/bin
4142
PATH: /opt/Qt5/bin
4243
PATH: /opt/SDL/bin
4344
PATH: /opt/SDL2/bin
45+
PATH: /opt/avr/bin
4446
PATH: /opt/blender-2.79b/bin
45-
PATH: /opt/boinc/bin
47+
PATH: /opt/boinc_client-7.14.2/bin
4648
PATH: /opt/brlcad-7.26.4/bin
4749
PATH: /opt/games/bin
48-
PATH: /opt/gdbm-1.14.1/bin
49-
PATH: /opt/ghostscript-9.23/bin
50-
PATH: /opt/git-2.17.0/bin
50+
PATH: /opt/gdbm-1.18.1/bin
51+
PATH: /opt/gifprogs-5.1.2/bin
52+
PATH: /opt/git-2.20.1/bin
53+
PATH: /opt/graphviz-2.40.1/bin
54+
PATH: /opt/inn-2.6.2/bin
5155
PATH: /opt/lua-5.3.4/bin
52-
PATH: /opt/lxc-3.0.1/bin
56+
PATH: /opt/luajid-2.0.4/bin
57+
PATH: /opt/lxc-3.0.3/bin
5358
PATH: /opt/mujs-1.0.5/bin
59+
PATH: /opt/net_snmp-5.8/bin
5460
PATH: /opt/netpbm-10.66.02/bin
5561
PATH: /opt/opengl/bin
5662
PATH: /opt/panda3d/bin
5763
PATH: /opt/perl-5.24.1/bin
58-
PATH: /opt/php-7.1.3/bin
59-
PATH: /opt/qemu-2.8.1/bin
60-
PATH: /opt/rustc-1.33.0/bin
61-
PATH: /opt/schily/bin
64+
PATH: /opt/qemu-2.8.1_SDL/bin
65+
PATH: /opt/qemu-3.1.0_SDL/bin
66+
PATH: /opt/ruby-2.5.2/bin
6267
PATH: /opt/squirrel-3.0/bin
63-
PATH: /opt/tcl-8.6.8/bin
68+
PATH: /opt/tcl-8.6.9/bin
6469
PATH: /opt/tinyscheme-1.41/bin
65-
PATH: /opt/wine-3.12/bin
70+
PATH: /opt/wine-3.21/bin
71+
PATH: /opt/wine-4.3/bin
6672

6773

6874
## ----------- ##
@@ -74,7 +80,7 @@ configure:2213: found /usr/bin/gcc
7480
configure:2224: result: gcc
7581
configure:2453: checking for C compiler version
7682
configure:2462: gcc --version >&5
77-
gcc (GCC) 8.1.0
83+
gcc (GCC) 8.2.0
7884
Copyright (C) 2018 Free Software Foundation, Inc.
7985
This is free software; see the source for copying conditions. There is NO
8086
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@@ -83,11 +89,11 @@ configure:2473: $? = 0
8389
configure:2462: gcc -v >&5
8490
Using built-in specs.
8591
COLLECT_GCC=gcc
86-
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i486-pc-linux-gnu/8.1.0/lto-wrapper
92+
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i486-pc-linux-gnu/8.2.0/lto-wrapper
8793
Target: i486-pc-linux-gnu
88-
Configured with: ../gcc-8.1.0-src/configure --prefix=/usr --sysconfdir=/etc --includedir=/usr/include --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info --host=i486-pc-linux-gnu --build=i486-pc-linux-gnu --target=i486-pc-linux-gnu --enable-languages=c,c++,go --disable-nls --disable-multilib
94+
Configured with: ../gcc-8.2.0-src/configure --enable-languages=c,c++,go --disable-nls --disable-multilib --prefix=/usr --sysconfdir=/etc --includedir=/usr/include --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info --host=i486-pc-linux-gnu --build=i486-pc-linux-gnu --target=i486-pc-linux-gnu
8995
Thread model: posix
90-
gcc version 8.1.0 (GCC)
96+
gcc version 8.2.0 (GCC)
9197
configure:2473: $? = 0
9298
configure:2462: gcc -V >&5
9399
gcc: error: unrecognized command line option '-V'
@@ -306,7 +312,7 @@ configure:4379: $? = 0
306312
configure:4388: result: yes
307313
configure:4406: checking for OpenSSL_add_all_algorithms
308314
configure:4406: gcc -o conftest -g -O2 conftest.c -lcrypto -lssl -lc -lc -lc -lc -lc -lc -lc -lc >&5
309-
/tmp/cc6pj4xE.o: In function `main':
315+
/usr/lib/gcc/i486-pc-linux-gnu/8.2.0/../../../../i486-pc-linux-gnu/bin/ld: /tmp/ccKZxT6X.o: in function `main':
310316
/home/colum/movgrab/libUseful/conftest.c:63: undefined reference to `OpenSSL_add_all_algorithms'
311317
collect2: error: ld returned 1 exit status
312318
configure:4406: $? = 1
@@ -392,7 +398,7 @@ configure:4406: $? = 0
392398
configure:4406: result: yes
393399
configure:4406: checking for EVP_rc5_32_12_16_cbc
394400
configure:4406: gcc -o conftest -g -O2 conftest.c -lcrypto -lssl -lc -lc -lc -lc -lc -lc -lc -lc >&5
395-
/tmp/ccCXjw2k.o: In function `main':
401+
/usr/lib/gcc/i486-pc-linux-gnu/8.2.0/../../../../i486-pc-linux-gnu/bin/ld: /tmp/ccwSLpQF.o: in function `main':
396402
/home/colum/movgrab/libUseful/conftest.c:66: undefined reference to `EVP_rc5_32_12_16_cbc'
397403
collect2: error: ld returned 1 exit status
398404
configure:4406: $? = 1
@@ -497,7 +503,7 @@ configure:4406: $? = 0
497503
configure:4406: result: yes
498504
configure:4406: checking for SSL_set_tlsext_host_name
499505
configure:4406: gcc -o conftest -g -O2 conftest.c -lcrypto -lssl -lc -lc -lc -lc -lc -lc -lc -lc >&5
500-
/tmp/cceS7RX5.o: In function `main':
506+
/usr/lib/gcc/i486-pc-linux-gnu/8.2.0/../../../../i486-pc-linux-gnu/bin/ld: /tmp/ccC5S1Iu.o: in function `main':
501507
/home/colum/movgrab/libUseful/conftest.c:73: undefined reference to `SSL_set_tlsext_host_name'
502508
collect2: error: ld returned 1 exit status
503509
configure:4406: $? = 1
@@ -604,7 +610,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
604610
CONFIG_COMMANDS =
605611
$ ./config.status
606612

607-
on columPC
613+
on graphics
608614

609615
config.status:728: creating Makefile
610616

‎main.c

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ while (1)
9696
{
9797
fprintf(stderr,"Checking %-20s ",Curr->Tag);
9898
fflush(NULL);
99+
LibUsefulSetValue("Error:Silent", "Y");
99100
}
100101

101102

‎selectformat.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ return(FALSE);
4242
//this function compares the video formats found on the page to the list of
4343
//preferences expressed by the user with the '-f' flag, and contained in the
4444
//global variable 'Settings.FormatPreference'
45-
int SelectDownloadFormat(ListNode *Vars, int WebsiteType, int DisplaySize)
45+
int SelectDownloadFormat(ListNode *Vars, int WebsiteType)
4646
{
4747
ListNode *Curr;
4848
char *ptr, *Tempstr=NULL, *Fmt=NULL, *FmtID=NULL, *Selected=NULL, *p_ItemFormat;
@@ -53,7 +53,7 @@ Tempstr=GatherMatchingFormats(Tempstr,"",Vars);
5353
{
5454
for (i=0; i < 3; i++)
5555
{
56-
if (DisplayAvailableFormats(Vars, Tempstr, DisplaySize)) break;
56+
if (DisplayAvailableFormats(Vars, Tempstr)) break;
5757
//printf("Connection Refused, sleeping for 20 secs before retry\n");
5858
//sleep(10);
5959
break;

‎selectformat.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
#include "common.h"
55

6-
int SelectDownloadFormat(ListNode *Vars, int WebsiteType, int DisplaySize);
6+
int SelectDownloadFormat(ListNode *Vars, int WebsiteType);
77

88
#endif

‎servicetypes.c

+43-119
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#include "containerfiles.h"
33
#include "selectformat.h"
44
#include "download.h"
5-
#include "ign.h"
65
#include "youtube.h"
76
#include "settings.h"
87

@@ -18,7 +17,7 @@ Then site specific
1817

1918

2019
//Site type names used at the command line etc
21-
char *DownloadTypes[]={"none","generic","youtube","youtu.be","metacafe","dailymotion","break","ehow","vimeo","ted","reuters","liveleak","photobucket","washingtonpost","cbsnews","france24","euronews","metatube","guardian","redorbit","uctv.tv","dotsub","astronomy.com","discovery","bloomberg","nationalgeographic","videobash","smh","funnyordie","ign","ebaumsworld","gamestar","imdb","charlierose","stanfordoc","screencast.com","royalsociety.tv",NULL};
20+
char *DownloadTypes[]={"none","generic","youtube","youtu.be","metacafe","dailymotion","break","vimeo","ted","reuters","liveleak","photobucket","washingtonpost","cbsnews","france24","euronews","metatube","guardian","redorbit","uctv.tv","dotsub","astronomy.com","discovery","bloomberg","nationalgeographic","smh","ebaumsworld","imdb","charlierose","stanfordoc","screencast.com","royalsociety.tv","bitchute",NULL};
2221

2322
//Longer names used in display
2423
char *DownloadNames[]={"none",
@@ -28,7 +27,6 @@ char *DownloadNames[]={"none",
2827
"Metacafe: http://www.metacafe.com",
2928
"Daily Motion: http://www.dailymotion.com",
3029
"www.break.com",
31-
"www.ehow.com",
3230
"www.vimeo.com",
3331
"www.ted.com",
3432
"Reuters: http://www.reuters.com/",
@@ -47,29 +45,25 @@ char *DownloadNames[]={"none",
4745
"dsc.discovery.com",
4846
"www.bloomberg.com (not bloomberg.tv)",
4947
"National Geographic (http://video.nationalgeographic.com)",
50-
"videobash",
5148
"Sidney Morning Herald",
52-
"Funny or Die (http://www.funnyordie.com)",
53-
"IGN",
5449
"Ebaums World",
55-
"www.gamestar.de",
5650
"www.imdb.com",
5751
"Charlie Rose",
5852
"Stanford Open Classroom",
5953
"UDemy",
6054
"http://royalsociety.org/",
55+
"BitChute",
6156
NULL};
6257

6358
//"http://vimeo.com/33204284",
6459
//links used by the -test-sites feature to test if a download site still
6560
//works with movgrab
6661
char *TestLinks[]={"", "",
67-
"http://www.youtube.com/watch?v=Vxp3seoRNgY",
68-
"http://youtu.be/OdrEId7YI1k",
62+
"https://www.youtube.com/watch?v=GrK9EaQRp2I",
63+
"http://youtu.be/mvEPnhmtXY0",
6964
"http://metacafe.com/watch/11419763/super-blood-moon-eclipse-2015/",
7065
"http://www.dailymotion.com/video/x5790e_hubblecast-16-galaxies-gone-wild_tech",
7166
"http://www.break.com/video/break-compilations-2591623/cats-vs-the-world-iii-breaking-videos-3075295",
72-
"http://www.ehow.com/video_6819748_creamy-thyme-scrambled-eggs-recipe.html",
7367
"broken",
7468
"http://www.ted.com/talks/janine_benyus_shares_nature_s_designs.html",
7569
"http://www.reuters.com/video/2016/05/02/foam-swords-drawn-in-mass-play-fight-in?videoId=368328211",
@@ -78,8 +72,8 @@ char *TestLinks[]={"", "",
7872
"http://www.washingtonpost.com/video/politics/tom-prices-tense-senate-finance-hearing/2017/01/24/f0c35346-e282-11e6-a419-eefe8eff0835_video.html",
7973
"http://www.cbsnews.com/video/watch/?id=7357739n",
8074
"http://www.france24.com/en/20160430-down-earth-fast-fashion-pollution-environment-ethical-consumption",
81-
"http://www.euronews.com/news/bulletin/",
82-
"http://www.metatube.com/en/videos/cid2/Funny-Videos/53210/Rail-Jump-Fail/",
75+
"https://www.euronews.com/2019/06/27/astronaut-luca-parmitano-chronicles-his-mission-for-euronews",
76+
"https://www.metatube.com/en/videos/266906/Ex-Machina-Movie-TRAILER-2-2015/",
8377
"http://www.guardian.co.uk/world/video/2011/may/13/fukushima-radiation-dairy-farmers-video",
8478
"http://www.redorbit.com/video/using-f1-technology-to-transform-healthcare-012016/",
8579
"http://www.uctv.tv/search-details.aspx?showID=20888",
@@ -88,18 +82,15 @@ char *TestLinks[]={"", "",
8882
"http://dsc.discovery.com/videos/how-the-universe-works-birth-of-a-black-hole.html",
8983
"http://www.bloomberg.com/video/72477250/",
9084
"http://video.nationalgeographic.com/video/environment/environment-natural-disasters/earthquakes/earthquake-101/",
91-
"http://www.videobash.com/video_show/wing-suit-amazing-footage-6086",
9285
"http://www.smh.com.au/technology/sci-tech/newly-discovered-planets-include-superearth-20110913-1k7tl.html",
93-
"http://www.funnyordie.com/videos/032785be3a/genie-on-hard-times-with-parker-posey?playlist=featured_videos",
94-
"http://www.ign.com/videos/2013/06/05/the-last-of-us-review",
95-
"http://www.ebaumsworld.com/videos/a-giant-python-opens-the-door/83367677/",
96-
"http://www.gamestar.de/videos/trailer,3/hobbit-3-die-schlacht-der-fuenf-heere,76110.html",
86+
"https://www.ebaumsworld.com/videos/spacex-released-a-blooper-reel-of-all-their-failed-flights-and-landings/85465411/",
9787
"http://www.imdb.com/video/imdb/vi3832131865",
9888
"https://charlierose.com/videos/27996",
9989
"http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=wget&speed=100",
10090
"http://www.brainstuffshow.com/videos/how-gps-coordinates-work-video.htm",
10191
//"http://royalsociety.tv/rsPlayer.aspx?presentationid=474",
10292
"broken",
93+
"https://www.bitchute.com/video/v_UdkNgeuRY/",
10394
NULL};
10495

10596

@@ -138,10 +129,6 @@ else if (strcmp(Server,"www.break.com")==0)
138129
{
139130
Type=TYPE_BREAK_COM;
140131
}
141-
else if (strstr(Server,".ehow."))
142-
{
143-
Type=TYPE_EHOW;
144-
}
145132
else if (strcmp(Server,"www.dailymotion.com")==0)
146133
{
147134
Type=TYPE_DAILYMOTION;
@@ -234,18 +221,6 @@ else if (strstr(Server,"bloomberg.com"))
234221
{
235222
Type=TYPE_BLOOMBERG;
236223
}
237-
else if (strstr(Server,"www.videobash.com"))
238-
{
239-
Type=TYPE_VIDEOBASH;
240-
}
241-
else if (strstr(Server,"funnyordie.com"))
242-
{
243-
Type=TYPE_FUNNYORDIE;
244-
}
245-
else if (strstr(Server,".ign."))
246-
{
247-
Type=TYPE_IGN;
248-
}
249224
else if (strstr(Server,".imdb.com"))
250225
{
251226
Type=TYPE_IMDB;
@@ -254,10 +229,6 @@ else if (strstr(Server,".ebaumsworld.com"))
254229
{
255230
Type=TYPE_EBAUMSWORLD;
256231
}
257-
else if (strstr(Server,".gamestar.de"))
258-
{
259-
Type=TYPE_GAMESTAR;
260-
}
261232
else if (strstr(Server,"charlierose.com"))
262233
{
263234
Type=TYPE_CHARLIEROSE;
@@ -274,6 +245,10 @@ else if (strstr(Server,"screencast.com"))
274245
{
275246
Type=TYPE_SCREENCAST_COM;
276247
}
248+
else if (strstr(Server,"bitchute.com"))
249+
{
250+
Type=TYPE_BITCHUTE;
251+
}
277252

278253

279254

@@ -548,6 +523,7 @@ case TYPE_BREAK_COM:
548523
RetVal=DownloadPage(Tempstr,TYPE_BREAK_STAGE2,Title,Flags);
549524
break;
550525

526+
551527
case TYPE_VIMEO:
552528
RetVal=DownloadPage(GetVar(Vars,"ID"),TYPE_VIMEO_STAGE2,Title,Flags);
553529
break;
@@ -584,11 +560,6 @@ case TYPE_BLOOMBERG:
584560
RetVal=DownloadItem(Tempstr, Title, Fmt, Flags);
585561
break;
586562

587-
case TYPE_IGN:
588-
Tempstr=SubstituteVarsInString(Tempstr,"http://apis.ign.com/video/v3/videos/$(ID)",Vars,0);
589-
RetVal=DownloadPage(Tempstr,TYPE_IGN_STAGE2, Title,Flags);
590-
break;
591-
592563
case TYPE_IMDB:
593564
Tempstr=SubstituteVarsInString(Tempstr,"http://www.imdb.com/video/imdb/vi$(ID)/imdb/single",Vars,0);
594565
RetVal=DownloadPage(Tempstr,TYPE_IMDB_STAGE2, Title,Flags);
@@ -601,20 +572,14 @@ case TYPE_REUTERS:
601572
break;
602573

603574

604-
case TYPE_GAMESTAR:
605-
Tempstr=SubstituteVarsInString(Tempstr,"http://gamestar.de/_misc/videos/portal/getVideoUrl.cfm?premium=0&videoId=$(ID)",Vars,0);
606-
RetVal=DownloadItem(Tempstr, Title, Fmt, Flags);
607-
break;
608-
609-
610575
case TYPE_STANFORD_OPENCLASS:
611576
Tempstr=SubstituteVarsInString(Tempstr,"http://openclassroom.stanford.edu/MainFolder/courses/$(course)/videos/$(ID).xml",Vars,0);
612577
Title=SubstituteVarsInString(Title,"$(course)-$(ID)",Vars,0);
613578

614579
RetVal=DownloadPage(Tempstr,TYPE_STANFORD_STAGE2, Title,Flags);
615580
break;
616581

617-
582+
case TYPE_BITCHUTE:
618583
case TYPE_DOTSUB:
619584
case TYPE_GENERIC:
620585
case TYPE_TED:
@@ -634,23 +599,23 @@ case TYPE_DISCOVERY:
634599
case TYPE_REDORBIT_STAGE2:
635600
case TYPE_ASTRONOMYCOM_STAGE2:
636601
case TYPE_BREAK_STAGE2:
637-
case TYPE_IGN_STAGE2:
638602
case TYPE_IMDB_STAGE2:
639603
case TYPE_STANFORD_STAGE2:
640604
case TYPE_REUTERS_STAGE2:
641-
case TYPE_FUNNYORDIE:
642605
case TYPE_EBAUMSWORLD:
643606
case TYPE_DAILYMOTION:
644-
case TYPE_VIDEOBASH:
645607
case TYPE_SCREENCAST_COM:
646-
case TYPE_EHOW:
647608
case TYPE_CHARLIEROSE:
648609
case TYPE_CONTAINERFILE_PLS:
649610
case TYPE_CONTAINERFILE_ASX:
650611
case TYPE_CONTAINERFILE_M3U8:
651612
Tempstr=CopyStr(Tempstr, GetVar(Vars,"ID"));
613+
if (strncmp(Tempstr, "https://www.youtube.com/",24)==0) RetVal=GrabMovie(Tempstr, TYPE_YOUTUBE);
614+
else
615+
{
652616
if ((strncmp(Tempstr,"icy:",4)!=0) && (strncmp(Tempstr,"http:",5)!=0) && (strncmp(Tempstr,"https:",6)!=0)) Tempstr=MCopyStr(Tempstr,"http:",GetVar(Vars,"ID"),NULL);
653617
RetVal=DownloadItem(Tempstr, Title, Fmt, Flags);
618+
}
654619
break;
655620
}
656621

@@ -891,25 +856,6 @@ case TYPE_BREAK_STAGE2:
891856
}
892857
break;
893858

894-
case TYPE_EHOW:
895-
#define EHOW_LINE "property=\"og:video\""
896-
#define EHOW_ITEM "source="
897-
#define EHOW_ITEM_END "&"
898-
#define EHOW_TITLE "<h1 class=\"Heading1a\">"
899-
#define EHOW_TITLE_END "</h1>"
900-
901-
if (strstr(Tempstr,EHOW_LINE))
902-
{
903-
GenericExtractFromLine(Tempstr, "item:flv",EHOW_ITEM,EHOW_ITEM_END,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
904-
}
905-
906-
ptr=strstr(Tempstr,EHOW_TITLE);
907-
if (ptr)
908-
{
909-
GenericExtractFromLine(Tempstr, "Title",EHOW_TITLE,EHOW_TITLE_END,Vars,EXTRACT_DEQUOTE);
910-
}
911-
break;
912-
913859

914860

915861
case TYPE_VIMEO:
@@ -1235,6 +1181,20 @@ case TYPE_BLOOMBERG:
12351181
}
12361182
break;
12371183

1184+
case TYPE_BITCHUTE:
1185+
#define BITCHUTE_ITEMSTART "<source src=\""
1186+
#define BITCHUTE_ITEMEND "\""
1187+
#define BITCHUTE_TITLE_START "<h1 id=\"video-title\" class=\"page-title\">"
1188+
#define BITCHUTE_TITLE_END "</h1"
1189+
1190+
if (strstr(Tempstr, BITCHUTE_TITLE_START)) GenericExtractFromLine(Tempstr, "Title:html", BITCHUTE_TITLE_START, BITCHUTE_TITLE_END,Vars,EXTRACT_DESLASHQUOTE | EXTRACT_NOSPACES);
1191+
if (strstr(Tempstr,BITCHUTE_ITEMSTART))
1192+
{
1193+
GenericExtractFromLine(Tempstr, "item:mp4",BITCHUTE_ITEMSTART,BITCHUTE_ITEMEND,Vars,EXTRACT_DESLASHQUOTE | EXTRACT_NOSPACES);
1194+
}
1195+
break;
1196+
1197+
12381198
case TYPE_NATGEO:
12391199
#define NATGEO_ITEM_START "HTML5src:'"
12401200
#define NATGEO_ITEM_END "\'"
@@ -1256,32 +1216,6 @@ case TYPE_NATGEO:
12561216
}
12571217
break;
12581218

1259-
case TYPE_VIDEOBASH:
1260-
#define VIDEOBASH_ITEMSTART "&amp;file=\" + 'http://' + '"
1261-
#define VIDEOBASH_ITEMEND "\'"
1262-
1263-
GenericTitleExtract(Tempstr, Vars);
1264-
if (strstr(Tempstr,VIDEOBASH_ITEMSTART))
1265-
{
1266-
GenericExtractFromLine(Tempstr, "item:mp4",VIDEOBASH_ITEMSTART,VIDEOBASH_ITEMEND,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
1267-
}
1268-
break;
1269-
1270-
1271-
case TYPE_IGN:
1272-
#define IGN_ITEMSTART "video_id\":\""
1273-
#define IGN_ITEMEND "\""
1274-
1275-
GenericTitleExtract(Tempstr, Vars);
1276-
if (strstr(Tempstr,IGN_ITEMSTART))
1277-
{
1278-
GenericExtractFromLine(Tempstr, "ID",IGN_ITEMSTART,IGN_ITEMEND,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
1279-
}
1280-
break;
1281-
1282-
case TYPE_IGN_STAGE2:
1283-
IGN_DecodeFormats(Tempstr, Vars);
1284-
break;
12851219

12861220
case TYPE_IMDB:
12871221
#define IMDB_ITEMSTART "://www.imdb.com/video/imdb/vi"
@@ -1316,31 +1250,21 @@ break;
13161250

13171251

13181252
case TYPE_EBAUMSWORLD:
1319-
#define EBAUMSWORLD_ITEMSTART "params.file = '"
1253+
#define EBAUMSWORLD_ITEMSTART "'file': '"
1254+
#define EBAUMSWORLD_ITEMSTART2 "params.file = '"
13201255
#define EBAUMSWORLD_ITEMEND "'"
13211256

13221257
GenericTitleExtract(Tempstr, Vars);
13231258
if (strstr(Tempstr,EBAUMSWORLD_ITEMSTART))
13241259
{
1325-
GenericExtractFromLine(Tempstr, "ID",EBAUMSWORLD_ITEMSTART,EBAUMSWORLD_ITEMEND,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
1260+
GenericExtractFromLine(Tempstr, "ID", EBAUMSWORLD_ITEMSTART, EBAUMSWORLD_ITEMEND, Vars, EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
13261261
}
1327-
break;
13281262

1329-
case TYPE_GAMESTAR:
1330-
#define GAMESTAR_ITEMSTART "var iVideoId ="
1331-
#define GAMESTAR_ITEMEND ";"
1332-
#define GAMESTAR2_ITEMSTART "ga('set', 'dimension4', '"
1333-
#define GAMESTAR2_ITEMEND "'"
1334-
1335-
GenericTitleExtract(Tempstr, Vars);
1336-
if (strstr(Tempstr,GAMESTAR_ITEMSTART))
1263+
if (strstr(Tempstr,EBAUMSWORLD_ITEMSTART2))
13371264
{
1338-
GenericExtractFromLine(Tempstr, "ID",GAMESTAR_ITEMSTART,GAMESTAR_ITEMEND,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
1339-
}
1340-
if (strstr(Tempstr,GAMESTAR2_ITEMSTART))
1341-
{
1342-
GenericExtractFromLine(Tempstr, "ID",GAMESTAR2_ITEMSTART,GAMESTAR2_ITEMEND,Vars,EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
1265+
GenericExtractFromLine(Tempstr, "ID", EBAUMSWORLD_ITEMSTART2, EBAUMSWORLD_ITEMEND, Vars, EXTRACT_DEQUOTE | EXTRACT_NOSPACES);
13431266
}
1267+
13441268
break;
13451269

13461270
case TYPE_SCREENCAST_COM:
@@ -1476,7 +1400,6 @@ case TYPE_REDORBIT:
14761400
case TYPE_GUARDIAN:
14771401
case TYPE_LIVELEAK:
14781402
case TYPE_DOTSUB:
1479-
case TYPE_FUNNYORDIE:
14801403
case TYPE_CHARLIEROSE:
14811404
GenericTitleExtract(Tempstr, Vars);
14821405
ptr=strstr(Tempstr,HTML5_ITEM_START);
@@ -1516,15 +1439,16 @@ break;
15161439

15171440
case TYPE_EURONEWS:
15181441
case TYPE_DISCOVERY:
1442+
15191443
#define OG_URL "<meta property=\"og:video:url\" content=\""
15201444
#define OG2_URL "<meta property=\"og:video\" content=\""
15211445
#define TWITTER_URL "<meta name=\"twitter:player:stream\" content=\""
15221446
#define OG_END "\""
15231447

15241448
GenericTitleExtract(Tempstr, Vars);
1525-
if (strstr(Tempstr, OG_URL)) GenericExtractFromLine(Tempstr, "ID",OG_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
1526-
if (strstr(Tempstr, OG2_URL)) GenericExtractFromLine(Tempstr, "ID",OG2_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
1527-
if (strstr(Tempstr, TWITTER_URL)) GenericExtractFromLine(Tempstr, "ID",TWITTER_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
1449+
if (strstr(Tempstr, OG_URL)) GenericExtractFromLine(Tempstr, "ID", OG_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
1450+
if (strstr(Tempstr, OG2_URL)) GenericExtractFromLine(Tempstr, "ID", OG2_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
1451+
if (strstr(Tempstr, TWITTER_URL)) GenericExtractFromLine(Tempstr, "ID", TWITTER_URL,OG_END,Vars,EXTRACT_GUESSTYPE);
15281452
break;
15291453
}
15301454

@@ -1550,7 +1474,7 @@ else
15501474
{
15511475
if (! StrValid(GetVar(Vars,"ID")))
15521476
{
1553-
Type=SelectDownloadFormat(Vars,Type,TRUE);
1477+
Type=SelectDownloadFormat(Vars,Type);
15541478
}
15551479

15561480
ptr=GetVar(Vars,"ID");

‎servicetypes.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "common.h"
66

7-
typedef enum {TYPE_NONE, TYPE_GENERIC, TYPE_YOUTUBE, TYPE_YOUTUBE_SHORT, TYPE_METACAFE, TYPE_DAILYMOTION, TYPE_BREAK_COM, TYPE_EHOW, TYPE_VIMEO, TYPE_TED, TYPE_REUTERS, TYPE_LIVELEAK, TYPE_PHOTOBUCKET,TYPE_WASHINGTONPOST,TYPE_CBSNEWS,TYPE_FRANCE24,TYPE_EURONEWS,TYPE_METATUBE,TYPE_GUARDIAN,TYPE_REDORBIT, TYPE_UCTV, TYPE_DOTSUB,TYPE_ASTRONOMYCOM, TYPE_DISCOVERY, TYPE_BLOOMBERG,TYPE_NATGEO,TYPE_VIDEOBASH,TYPE_SMH,TYPE_FUNNYORDIE,TYPE_IGN,TYPE_EBAUMSWORLD,TYPE_GAMESTAR,TYPE_IMDB,TYPE_CHARLIEROSE,TYPE_STANFORD_OPENCLASS, TYPE_SCREENCAST_COM, TYPE_ROYALSOCIETY,
7+
typedef enum {TYPE_NONE, TYPE_GENERIC, TYPE_YOUTUBE, TYPE_YOUTUBE_SHORT, TYPE_METACAFE, TYPE_DAILYMOTION, TYPE_BREAK_COM, TYPE_VIMEO, TYPE_TED, TYPE_REUTERS, TYPE_LIVELEAK, TYPE_PHOTOBUCKET,TYPE_WASHINGTONPOST,TYPE_CBSNEWS,TYPE_FRANCE24,TYPE_EURONEWS,TYPE_METATUBE,TYPE_GUARDIAN,TYPE_REDORBIT, TYPE_UCTV, TYPE_DOTSUB,TYPE_ASTRONOMYCOM, TYPE_DISCOVERY, TYPE_BLOOMBERG,TYPE_NATGEO,TYPE_SMH,TYPE_FUNNYORDIE,TYPE_EBAUMSWORLD,TYPE_GAMESTAR,TYPE_IMDB,TYPE_CHARLIEROSE,TYPE_STANFORD_OPENCLASS, TYPE_SCREENCAST_COM, TYPE_ROYALSOCIETY, TYPE_BITCHUTE,
88
/*Following ones are not real types, but used by internal processes */
99
TYPE_BREAK_STAGE2, TYPE_VIMEO_STAGE2, TYPE_VIMEO_STAGE3, TYPE_CLIPSHACK_STAGE2, TYPE_CLIPSHACK_STAGE3, TYPE_VIDEOEMO_STAGE2,TYPE_MYVIDO1_STAGE2, TYPE_REFERENCE, TYPE_REDORBIT_STAGE2, TYPE_ASTRONOMYCOM_STAGE2,TYPE_CONTAINERFILE, TYPE_GOOGLE_URL, TYPE_YOUTUBE_PLAYLIST, TYPE_ROYALSOCIETY_STAGE2, TYPE_REUTERS_STAGE2, TYPE_STANFORD_STAGE2, TYPE_IGN_STAGE2, TYPE_IMDB_STAGE2, TYPE_M3U8_STREAM, TYPE_CONTAINERFILE_M3U8, TYPE_CONTAINERFILE_PLS, TYPE_CONTAINERFILE_ASX} TDT;
1010

‎settings.c

+4-5
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ fprintf(stdout,"'-tw <int>' Set max width of item title in progress display (De
5151
fprintf(stdout,"'-np <path>' File to write current title to. Useful as 'now playing' for internet radio streams\n");
5252
fprintf(stdout,"'-t' specifies website type.\n");
5353
fprintf(stdout,"'-r' Resume download (only works when writing a single file, not with +o).\n");
54+
fprintf(stdout,"'-s' Display sizes of available media (this slows things down a bit).\n");
5455
fprintf(stdout,"'-f' specifies preferred video/audio formats for sites that offer more than one\n");
5556
fprintf(stdout," example: flv:640x480,flv,mp4,mp3\n");
5657
fprintf(stdout," Use -T to get a list of formats the site offers\n");
@@ -200,6 +201,7 @@ for (i=1; i < argc; i++)
200201
else if (strcmp(argv[i],"-w")==0) Flags |= FLAG_STDIN;
201202
else if (strcmp(argv[i],"-dt")==0) DisplayTitleWidth=atoi(argv[++i]);
202203
else if (strcmp(argv[i],"-np")==0) Settings.NowPlayingFile=CopyStr(Settings.NowPlayingFile, argv[++i]);
204+
else if (strcmp(argv[i],"-s")==0) Flags |= FLAG_DOWNLOAD_SIZE;
203205
else if (strcmp(argv[i],"-st")==0) Settings.STREAMTimeout=atoi(argv[++i]);
204206
else if (strcmp(argv[i],"-P")==0) SetPlayer(argv[++i]);
205207
else if (strcmp(argv[i],"-Pp")==0) Settings.PlayerLaunchPercent=atoi(argv[++i]);
@@ -215,15 +217,12 @@ for (i=1; i < argc; i++)
215217
Flags |= FLAG_TEST_SITES | FLAG_QUIET;
216218
for (j=1; TestLinks[j] !=NULL; j++)
217219
{
218-
if (StrLen(TestLinks[j])) ListAddNamedItem(DL_List,DownloadTypes[j],CopyStr(NULL,TestLinks[j]));
220+
if (StrValid(TestLinks[j])) ListAddNamedItem(DL_List,DownloadTypes[j],CopyStr(NULL,TestLinks[j]));
219221

220222
}
221223
Settings.ItemSelectArg=CopyStr(Settings.ItemSelectArg,"0");
222224
}
223-
else
224-
{
225-
ListAddItem(DL_List, CopyStr(NULL,argv[i]));
226-
}
225+
else ListAddItem(DL_List, CopyStr(NULL,argv[i]));
227226

228227
}
229228

0 commit comments

Comments
 (0)
Please sign in to comment.