Skip to content

Commit 8e6be88

Browse files
wb9688TobiGr
authored andcommitted
Simplify getId() in YoutubeChannelExtractor
1 parent ecfc27a commit 8e6be88

2 files changed

Lines changed: 8 additions & 20 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.grack.nanojson.JsonParserException;
77

88
import org.jsoup.nodes.Document;
9-
import org.jsoup.nodes.Element;
109
import org.schabi.newpipe.extractor.StreamingService;
1110
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
1211
import org.schabi.newpipe.extractor.downloader.Downloader;
@@ -91,18 +90,7 @@ public String getUrl() throws ParsingException {
9190
@Override
9291
public String getId() throws ParsingException {
9392
try {
94-
return doc.select("meta[property=\"og:url\"]").first().attr("content").replace(CHANNEL_URL_BASE, "");
95-
} catch (Exception ignored) {}
96-
try {
97-
return initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("navigationEndpoint").getObject("browseEndpoint").getString("browseId");
98-
} catch (Exception ignored) {}
99-
100-
// fallback method; does not work with channels that have no "Subscribe" button (e.g. EminemVEVO)
101-
try {
102-
Element element = doc.getElementsByClass("yt-uix-subscription-button").first();
103-
if (element == null) element = doc.getElementsByClass("yt-uix-subscription-preferences-button").first();
104-
105-
return element.attr("data-channel-external-id");
93+
return initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getString("channelId");
10694
} catch (Exception e) {
10795
throw new ParsingException("Could not get channel id", e);
10896
}
@@ -112,7 +100,7 @@ public String getId() throws ParsingException {
112100
@Override
113101
public String getName() throws ParsingException {
114102
try {
115-
return doc.select("meta[property=\"og:title\"]").first().attr("content");
103+
return initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getString("title");
116104
} catch (Exception e) {
117105
throw new ParsingException("Could not get channel name", e);
118106
}
@@ -121,7 +109,8 @@ public String getName() throws ParsingException {
121109
@Override
122110
public String getAvatarUrl() throws ParsingException {
123111
try {
124-
return initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("avatar").getArray("thumbnails").getObject(0).getString("url");
112+
return initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("avatar")
113+
.getArray("thumbnails").getObject(0).getString("url");
125114
} catch (Exception e) {
126115
throw new ParsingException("Could not get avatar", e);
127116
}
@@ -132,7 +121,8 @@ public String getBannerUrl() throws ParsingException {
132121
try {
133122
String url = null;
134123
try {
135-
url = initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("banner").getArray("thumbnails").getObject(0).getString("url");
124+
url = initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("banner")
125+
.getArray("thumbnails").getObject(0).getString("url");
136126
} catch (Exception ignored) {}
137127
if (url == null || url.contains("s.ytimg.com") || url.contains("default_banner")) {
138128
return null;
@@ -149,7 +139,7 @@ public String getBannerUrl() throws ParsingException {
149139

150140
return url;
151141
} catch (Exception e) {
152-
throw new ParsingException("Could not get Banner", e);
142+
throw new ParsingException("Could not get banner", e);
153143
}
154144
}
155145

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamInfoItemExtractor.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,8 @@ public String getUploaderUrl() throws ParsingException {
157157
@Nullable
158158
@Override
159159
public String getTextualUploadDate() {
160-
// TODO: Get upload date in case of a videoRenderer (not available in case of a compactVideoRenderer)
161160
try {
162-
String s =videoInfo.getObject("publishedTimeText").getString("simpleText");
163-
return s;
161+
return videoInfo.getObject("publishedTimeText").getString("simpleText");
164162
} catch (Exception e) {
165163
// upload date is not always available, e.g. in playlists
166164
return null;

0 commit comments

Comments
 (0)