diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java
index b460448dd..280ccb94e 100644
--- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java
+++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java
@@ -940,18 +940,50 @@ public final class YoutubeParsingHelper {
}
final StringBuilder textBuilder = new StringBuilder();
- for (final Object textPart : textObject.getArray("runs")) {
- final String text = ((JsonObject) textPart).getString("text");
- if (html && ((JsonObject) textPart).has("navigationEndpoint")) {
- final String url = getUrlFromNavigationEndpoint(((JsonObject) textPart)
- .getObject("navigationEndpoint"));
- if (!isNullOrEmpty(url)) {
- textBuilder.append("").append(text)
- .append("");
- continue;
+ for (final Object o : textObject.getArray("runs")) {
+ final JsonObject run = (JsonObject) o;
+ String text = run.getString("text");
+
+ if (html) {
+ if (run.has("navigationEndpoint")) {
+ final String url = getUrlFromNavigationEndpoint(run
+ .getObject("navigationEndpoint"));
+ if (!isNullOrEmpty(url)) {
+ text = "" + text + "";
+ }
}
+
+ final boolean bold = run.has("bold")
+ && run.getBoolean("bold");
+ final boolean italic = run.has("italics")
+ && run.getBoolean("italics");
+ final boolean strikethrough = run.has("strikethrough")
+ && run.getBoolean("strikethrough");
+
+ if (bold) {
+ textBuilder.append("");
+ }
+ if (italic) {
+ textBuilder.append("");
+ }
+ if (strikethrough) {
+ textBuilder.append("");
+ }
+
+ textBuilder.append(text);
+
+ if (strikethrough) {
+ textBuilder.append("");
+ }
+ if (italic) {
+ textBuilder.append("");
+ }
+ if (bold) {
+ textBuilder.append("");
+ }
+ } else {
+ textBuilder.append(text);
}
- textBuilder.append(text);
}
String text = textBuilder.toString();
@@ -991,7 +1023,7 @@ public final class YoutubeParsingHelper {
final StringBuilder textBuilder = new StringBuilder();
int textStart = 0;
- for (final Object commandRun: commandRuns) {
+ for (final Object commandRun : commandRuns) {
if (!(commandRun instanceof JsonObject)) {
continue;
}